export interface ModifiableData { mod: T; } export interface HasBase { base: T; } export interface ModifiableDataBase extends ModifiableData, HasBase {} export interface HasTotal { total: T; } export interface ModifiableDataTotal extends ModifiableData, HasTotal {} export interface ModifiableDataBaseTotal extends ModifiableDataBase, HasTotal {} export interface ResourceData extends ModifiableData { value: T; } export interface HasMax { max: T; } export interface ResourceDataBaseTotalMax extends ResourceData, HasBase, HasTotal, HasMax {} export interface UsableResource { total: T; used: T; }