-record(schema, { name :: binary(), attrs :: list(lightspeed@component@template_compiler:attr_schema()), slots :: list(lightspeed@component@template_compiler:slot_schema()), build_assigns :: fun((list({binary(), lightspeed@component@template_compiler:attr_value()})) -> {ok, any()} | {error, binary()}), build_slots :: fun((list({binary(), lightspeed@component:rendered()})) -> {ok, any()} | {error, binary()}), render :: fun((any(), any()) -> lightspeed@component:rendered()) }).