ICRC Games stats standard

Great ideas here @CapuzR.

Some questions / feedback


type Identity = variant {
    Principal : principal;
};

Is the intention here to allow for additional identity types to be added in the future? If so you might have to rethink this part a bit; check the feedback Andreas left here.

Applying his his advice above to the Results type…

type GamerStatsResults = variant {
    Ok : GamerStats;
    Err : opt GamerStatsError;  
};

Next, regarding:

type GamerStats = record {
    hours_played : Nat;
    session_time_average : Nat;
    extras : Value;
};

and

type Stats = record {
    active_players : Nat;
    unique_players : Nat;
    peak_concurrent_players : Nat;
    hours_played : Nat;
    cycles_burned : Nat;
    session_time_average : Nat;
    extras : Value;
};

What are your thoughts about potentially typing extras as a vec Property? Essentially, making it easily interpreted as a map by consumers.

I think this would also make it easier to quickly find some agreement on, and implement, genre specific stats as you allude to. e.g. fps games implementing ICRC-14 MUST include accuracy : Float in extras.

5 Likes