interface asset { resource asset-handle { set-watched: func(watched: bool); version: func() -> u64; uuid: func() -> string; path: func() -> option; is-watched: func() -> bool; is-loaded: func() -> bool; wait-for-load: func(); wait-recurse-dependencies-load: func(); } resource image-handle { from-raw-handle: static func(raw-handle: borrow) -> option; height: func() -> option; width: func() -> option; get-bytes: func() -> option>; } use ecs.{ecs-world}; resource asset-manager { from-world: static func(w: borrow) -> option; request: func(path: string) -> asset-handle; } }