pub fn capsule_ref<H: Html, P: Clone + 'static>(
        mut self,
        val: impl Into<Forever<Capsule<H, P>>>,
    ) -> Self {
        assert_eq!(
            TypeId::of::<G>(),
            TypeId::of::<H>(),
            "mismatched render backends"
        );
        let val = val.into();
        // Enforce that capsules must have defined fallbacks
        if val.fallback.is_none() {
            panic!(
                "capsule '{}' has no fallback (please register one)",
                val.inner.get_path()
            )
        }

        // SAFETY: We asserted that `G == H` above.
        let val: Forever<Capsule<G, P>> = unsafe { std::mem::transmute(val) };

        let entity: Forever<Entity<G>> = match val {
            Forever::Owned(capsule) => capsule.inner.into(),
            Forever::StaticRef(capsule_ref) => (&capsule_ref.inner).into(),
        };

        let path = entity.get_path();
        self.entities.insert(path, entity);
        self
    }
Adds a single new capsule to the app. This behaves like
`.template_ref()`, but for capsules.

See [`Capsule`] for further details.
packages/perseus/src/init.rs