//! The values startup proves before the first frame.
/// Every value the engine proves it can build before the first frame.
///
/// [`derive(Catalog)`](macro@crate::Catalog) writes this for a mesh type
/// or a sound vocabulary. One that a game writes itself must return every
/// value that reads from [`Assets`](crate::Assets).
pub trait Catalog: Sized {
/// Every value to build. A type with fields returns the values its
/// `#[catalog(...)]` names, each written as a value of the type; one that
/// writes this itself states them.
fn catalog() -> Vec<Self>;
}