ID for a user-edited piece of data. It may have import data associated with it. Assets can be
thought of as a list of properties that follow a particular schema.
Affects how we build the file. However most of the time use asset properties instead. The only
things in here should be system-level configuration that is relevant to any asset type
A collection of assets. Methods support serializing/deserializing, resolving property values,
etc. This includes being aware of schema and prototypes.
The full state of a single asset in a dataset
Describes the conditions that we imported the file
Handles saving and loading a schema cache, an immutable repository of all schemas that have ever
existed.
Acccumulates schema definitions defined in code or by json. Once schemas have been loaded, they
are “linked”, producing read-only schemas that are hashed and may cyclically reference each
other. The individual schemas are also very cheap to clone as they are stored in Arcs.
Accumulates linked types and can be used to create a schema. This allows validation of types
and some work that can be pre-cached, such as generating default values for enums. (Values
are not a concept that exists in the hydrate-schema crate)
A simplified container of data. Can be used to produce a set of properties and be merged into
a data set later, or be serialized by itself. Still support schema migration.