From 01a3e16e49fc41862902aa5021d90570439e42d7 Mon Sep 17 00:00:00 2001 From: rekhoff Date: Mon, 16 Feb 2026 10:12:54 -0800 Subject: [PATCH 1/6] Updated C# `Name` attribute to `Accessor` --- .../Codegen.Tests/fixtures/diag/Lib.cs | 44 ++-- .../diag/snapshots/Module.verified.txt | 74 +++--- .../Codegen.Tests/fixtures/server/Lib.cs | 14 +- crates/bindings-csharp/Codegen/Module.cs | 8 +- crates/bindings-csharp/Runtime/Attrs.cs | 6 +- demo/Blackholio/server-csharp/Lib.cs | 28 +-- docs/test-csharp-snippets/Module.cs | 8 +- modules/benchmarks-cs/circles.cs | 6 +- modules/benchmarks-cs/ia_loop.cs | 16 +- modules/benchmarks-cs/synthetic.cs | 12 +- modules/module-test-cs/Lib.cs | 34 +-- modules/sdk-test-connect-disconnect-cs/Lib.cs | 4 +- modules/sdk-test-cs/Lib.cs | 222 +++++++++--------- .../republishing/server-initial/Lib.cs | 2 +- .../republishing/server-republish/Lib.cs | 2 +- .../examples~/regression-tests/server/Lib.cs | 62 ++--- templates/basic-cs/spacetimedb/Lib.cs | 2 +- templates/chat-console-cs/spacetimedb/Lib.cs | 4 +- .../t_001_basic_tables/answers/csharp.cs | 6 +- .../t_002_scheduled_table/answers/csharp.cs | 2 +- .../t_003_struct_in_table/answers/csharp.cs | 2 +- .../basics/t_004_insert/answers/csharp.cs | 2 +- .../basics/t_005_update/answers/csharp.cs | 2 +- .../basics/t_006_delete/answers/csharp.cs | 2 +- .../basics/t_007_crud/answers/csharp.cs | 2 +- .../t_008_index_lookup/answers/csharp.cs | 4 +- .../basics/t_009_init/answers/csharp.cs | 2 +- .../basics/t_010_connect/answers/csharp.cs | 2 +- .../t_011_helper_function/answers/csharp.cs | 2 +- .../answers/csharp.cs | 2 +- .../answers/csharp.cs | 2 +- .../answers/csharp.cs | 2 +- .../answers/csharp.cs | 2 +- .../t_016_sum_type_columns/answers/csharp.cs | 2 +- .../t_017_scheduled_columns/answers/csharp.cs | 2 +- .../t_018_constraints/answers/csharp.cs | 4 +- .../t_019_many_to_many/answers/csharp.cs | 10 +- .../schema/t_020_ecs/answers/csharp.cs | 8 +- .../answers/csharp.cs | 4 +- 39 files changed, 300 insertions(+), 314 deletions(-) diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/Lib.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/Lib.cs index a6590914d65..109d0c9e3f1 100644 --- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/Lib.cs +++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/Lib.cs @@ -437,33 +437,29 @@ public MyStruct(int x) } [SpacetimeDB.Table] -[SpacetimeDB.Index.BTree(Name = "TestIndexWithoutColumns")] -[SpacetimeDB.Index.BTree(Name = "TestIndexWithEmptyColumns", Columns = [])] -[SpacetimeDB.Index.BTree(Name = "TestUnknownColumns", Columns = ["UnknownColumn"])] +[SpacetimeDB.Index.BTree(Accessor = "TestIndexWithoutColumns")] +[SpacetimeDB.Index.BTree(Accessor = "TestIndexWithEmptyColumns", Columns = [])] +[SpacetimeDB.Index.BTree(Accessor = "TestUnknownColumns", Columns = ["UnknownColumn"])] public partial struct TestIndexIssues { - [SpacetimeDB.Index.BTree(Name = "TestUnexpectedColumns", Columns = ["UnexpectedColumn"])] + [SpacetimeDB.Index.BTree(Accessor = "TestUnexpectedColumns", Columns = ["UnexpectedColumn"])] public int SelfIndexingColumn; } -[SpacetimeDB.Table( - Name = "TestScheduleWithoutPrimaryKey", +[SpacetimeDB.Table(Accessor = "TestScheduleWithoutPrimaryKey", Scheduled = "DummyScheduledReducer", ScheduledAt = nameof(ScheduleAtCorrectType) )] -[SpacetimeDB.Table( - Name = "TestScheduleWithWrongPrimaryKeyType", +[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongPrimaryKeyType", Scheduled = "DummyScheduledReducer", ScheduledAt = nameof(ScheduleAtCorrectType) )] -[SpacetimeDB.Table(Name = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] -[SpacetimeDB.Table( - Name = "TestScheduleWithWrongScheduleAtType", +[SpacetimeDB.Table(Accessor = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] +[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongScheduleAtType", Scheduled = "DummyScheduledReducer", ScheduledAt = nameof(ScheduleAtWrongType) )] -[SpacetimeDB.Table( - Name = "TestScheduleWithMissingScheduleAtField", +[SpacetimeDB.Table(Accessor = "TestScheduleWithMissingScheduleAtField", Scheduled = "DummyScheduledReducer", ScheduledAt = "MissingField" )] @@ -517,28 +513,28 @@ public partial class Module ); // Invalid: View definition missing Public=true - [SpacetimeDB.View(Name = "view_def_no_public")] + [SpacetimeDB.View(Accessor = "view_def_no_public")] public static List ViewDefNoPublic(ViewContext ctx) { return new List(); } // Invalid: View definition with missing context type - [SpacetimeDB.View(Name = "view_def_no_context", Public = true)] + [SpacetimeDB.View(Accessor = "view_def_no_context", Public = true)] public static List ViewDefNoContext() { return new List(); } // Invalid: View definition with wrong context type - [SpacetimeDB.View(Name = "view_def_wrong_context", Public = true)] + [SpacetimeDB.View(Accessor = "view_def_wrong_context", Public = true)] public static List ViewDefWrongContext(ReducerContext ctx) { return new List(); } // Invalid: View that performs Insert - [SpacetimeDB.View(Name = "view_no_insert", Public = true)] + [SpacetimeDB.View(Accessor = "view_no_insert", Public = true)] public static Player? ViewNoInsert(ViewContext ctx) { ctx.Db.Player.Insert(new Player { Identity = new() }); @@ -546,7 +542,7 @@ public static List ViewDefWrongContext(ReducerContext ctx) } // Invalid: View that performs Delete - [SpacetimeDB.View(Name = "view_no_delete", Public = true)] + [SpacetimeDB.View(Accessor = "view_no_delete", Public = true)] public static Player? ViewNoDelete(ViewContext ctx) { ctx.Db.Player.Delete(new Player { Identity = new() }); @@ -555,41 +551,41 @@ public static List ViewDefWrongContext(ReducerContext ctx) // TODO: Investigate why void return breaks the FFI generation // // Invalid: Void return type is not Vec or Option - // [SpacetimeDB.View(Name = "view_def_no_return", Public = true)] + // [SpacetimeDB.View(Accessor = "view_def_no_return", Public = true)] // public static void ViewDefNoReturn(ViewContext ctx) // { // return; // } // Invalid: Wrong return type is not Vec or Option - [SpacetimeDB.View(Name = "view_def_wrong_return", Public = true)] + [SpacetimeDB.View(Accessor = "view_def_wrong_return", Public = true)] public static Player ViewDefWrongReturn(ViewContext ctx) { return new Player { Identity = new() }; } // Invalid: Returns type that is not a SpacetimeType - [SpacetimeDB.View(Name = "view_def_returns_not_a_spacetime_type", Public = true)] + [SpacetimeDB.View(Accessor = "view_def_returns_not_a_spacetime_type", Public = true)] public static NotSpacetimeType? ViewDefReturnsNotASpacetimeType(AnonymousViewContext ctx) { return new NotSpacetimeType(); } - [SpacetimeDB.View(Name = "view_def_no_anon_identity", Public = true)] + [SpacetimeDB.View(Accessor = "view_def_no_anon_identity", Public = true)] public static Player? ViewDefNoAnonIdentity(AnonymousViewContext ctx) { ctx.GetIdentity(); return null; } - [SpacetimeDB.View(Name = "view_def_no_iter", Public = true)] + [SpacetimeDB.View(Accessor = "view_def_no_iter", Public = true)] public static Player? ViewDefNoIter(AnonymousViewContext ctx) { ctx.Db.Player.Iter(); return null; } - [SpacetimeDB.View(Name = "view_def_index_no_mutation", Public = true)] + [SpacetimeDB.View(Accessor = "view_def_index_no_mutation", Public = true)] public static Player? ViewDefIndexNoMutation(AnonymousViewContext ctx) { ctx.Db.Player.Identity.Delete(0); diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module.verified.txt b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module.verified.txt index 05d99bddf5e..ca10deb0204 100644 --- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module.verified.txt +++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module.verified.txt @@ -87,8 +87,8 @@ public partial record TestTableTaggedEnum : SpacetimeDB.TaggedEnum<(int X, int Y }, {/* { - [SpacetimeDB.Index.BTree(Name = "TestUnexpectedColumns", Columns = ["UnexpectedColumn"])] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [SpacetimeDB.Index.BTree(Accessor = "TestUnexpectedColumns", Columns = ["UnexpectedColumn"])] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ public int SelfIndexingColumn; */ Message: Index attribute on a field applies directly to that field, so it doesn't accept the Columns parameter., @@ -104,9 +104,9 @@ public partial record TestTableTaggedEnum : SpacetimeDB.TaggedEnum<(int X, int Y }, {/* [SpacetimeDB.Table] -[SpacetimeDB.Index.BTree(Name = "TestIndexWithoutColumns")] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -[SpacetimeDB.Index.BTree(Name = "TestIndexWithEmptyColumns", Columns = [])] +[SpacetimeDB.Index.BTree(Accessor = "TestIndexWithoutColumns")] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Index.BTree(Accessor = "TestIndexWithEmptyColumns", Columns = [])] */ Message: Index attribute doesn't specify columns., Severity: Error, @@ -120,10 +120,10 @@ public partial record TestTableTaggedEnum : SpacetimeDB.TaggedEnum<(int X, int Y } }, {/* -[SpacetimeDB.Index.BTree(Name = "TestIndexWithoutColumns")] -[SpacetimeDB.Index.BTree(Name = "TestIndexWithEmptyColumns", Columns = [])] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -[SpacetimeDB.Index.BTree(Name = "TestUnknownColumns", Columns = ["UnknownColumn"])] +[SpacetimeDB.Index.BTree(Accessor = "TestIndexWithoutColumns")] +[SpacetimeDB.Index.BTree(Accessor = "TestIndexWithEmptyColumns", Columns = [])] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Index.BTree(Accessor = "TestUnknownColumns", Columns = ["UnknownColumn"])] */ Message: Index attribute doesn't specify columns., Severity: Error, @@ -137,9 +137,9 @@ public partial record TestTableTaggedEnum : SpacetimeDB.TaggedEnum<(int X, int Y } }, {/* -[SpacetimeDB.Index.BTree(Name = "TestIndexWithEmptyColumns", Columns = [])] -[SpacetimeDB.Index.BTree(Name = "TestUnknownColumns", Columns = ["UnknownColumn"])] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Index.BTree(Accessor = "TestIndexWithEmptyColumns", Columns = [])] +[SpacetimeDB.Index.BTree(Accessor = "TestUnknownColumns", Columns = ["UnknownColumn"])] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ public partial struct TestIndexIssues */ Message: Could not find the specified column UnknownColumn in TestIndexIssues., @@ -155,17 +155,15 @@ public partial struct TestIndexIssues }, {/* -[SpacetimeDB.Table( - ^^^^^^^^^^^^^^^^^^ - Name = "TestScheduleWithoutPrimaryKey", -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Table(Accessor = "TestScheduleWithoutPrimaryKey", + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Scheduled = "DummyScheduledReducer", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ScheduledAt = nameof(ScheduleAtCorrectType) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ )] ^ -[SpacetimeDB.Table( +[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongPrimaryKeyType", */ Message: TestScheduleWithoutPrimaryKey is a scheduled table but doesn't have a primary key of type `ulong`., Severity: Error, @@ -180,17 +178,15 @@ public partial struct TestIndexIssues }, {/* )] -[SpacetimeDB.Table( - ^^^^^^^^^^^^^^^^^^ - Name = "TestScheduleWithWrongPrimaryKeyType", -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongPrimaryKeyType", + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Scheduled = "DummyScheduledReducer", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ScheduledAt = nameof(ScheduleAtCorrectType) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ )] ^ -[SpacetimeDB.Table(Name = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] +[SpacetimeDB.Table(Accessor = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] */ Message: TestScheduleWithWrongPrimaryKeyType is a scheduled table but doesn't have a primary key of type `ulong`., Severity: Error, @@ -205,9 +201,9 @@ public partial struct TestIndexIssues }, {/* )] -[SpacetimeDB.Table(Name = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -[SpacetimeDB.Table( +[SpacetimeDB.Table(Accessor = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongScheduleAtType", */ Message: Could not find the specified column ScheduledAt in TestScheduleIssues., Severity: Error, @@ -221,18 +217,16 @@ public partial struct TestIndexIssues } }, {/* -[SpacetimeDB.Table(Name = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] -[SpacetimeDB.Table( - ^^^^^^^^^^^^^^^^^^ - Name = "TestScheduleWithWrongScheduleAtType", -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Table(Accessor = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] +[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongScheduleAtType", + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Scheduled = "DummyScheduledReducer", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ScheduledAt = nameof(ScheduleAtWrongType) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ )] ^ -[SpacetimeDB.Table( +[SpacetimeDB.Table(Accessor = "TestScheduleWithMissingScheduleAtField", */ Message: TestScheduleWithWrongScheduleAtType is a scheduled table but doesn't have a primary key of type `ulong`., Severity: Error, @@ -247,10 +241,8 @@ public partial struct TestIndexIssues }, {/* )] -[SpacetimeDB.Table( - ^^^^^^^^^^^^^^^^^^ - Name = "TestScheduleWithMissingScheduleAtField", -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Table(Accessor = "TestScheduleWithMissingScheduleAtField", + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Scheduled = "DummyScheduledReducer", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ScheduledAt = "MissingField" @@ -272,8 +264,8 @@ public partial struct TestScheduleIssues }, {/* // Invalid: View definition missing Public=true - [SpacetimeDB.View(Name = "view_def_no_public")] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [SpacetimeDB.View(Accessor = "view_def_no_public")] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ public static List ViewDefNoPublic(ViewContext ctx) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ { @@ -296,7 +288,7 @@ public partial struct TestScheduleIssues } }, {/* - [SpacetimeDB.View(Name = "view_def_no_context", Public = true)] + [SpacetimeDB.View(Accessor = "view_def_no_context", Public = true)] public static List ViewDefNoContext() ^^ { @@ -313,7 +305,7 @@ public partial struct TestScheduleIssues } }, {/* - [SpacetimeDB.View(Name = "view_def_wrong_context", Public = true)] + [SpacetimeDB.View(Accessor = "view_def_wrong_context", Public = true)] public static List ViewDefWrongContext(ReducerContext ctx) ^^^^^^^^^^^^^^^^^^^^ { @@ -331,8 +323,8 @@ public partial struct TestScheduleIssues }, {/* // Invalid: Wrong return type is not Vec or Option - [SpacetimeDB.View(Name = "view_def_wrong_return", Public = true)] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + [SpacetimeDB.View(Accessor = "view_def_wrong_return", Public = true)] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ public static Player ViewDefWrongReturn(ViewContext ctx) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ { diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/server/Lib.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/server/Lib.cs index 4a86c30eb70..db9e347e9cd 100644 --- a/crates/bindings-csharp/Codegen.Tests/fixtures/server/Lib.cs +++ b/crates/bindings-csharp/Codegen.Tests/fixtures/server/Lib.cs @@ -202,8 +202,8 @@ public static void Init(ReducerContext ctx) } } -[SpacetimeDB.Table(Name = "MultiTable1", Public = true)] -[SpacetimeDB.Table(Name = "MultiTable2")] +[SpacetimeDB.Table(Accessor = "MultiTable1", Public = true)] +[SpacetimeDB.Table(Accessor = "MultiTable2")] public partial struct MultiTableRow { [SpacetimeDB.Index.BTree(Table = "MultiTable1")] @@ -226,7 +226,7 @@ public static void InsertMultiData(ReducerContext ctx, MultiTableRow data) } [SpacetimeDB.Table] -[SpacetimeDB.Index.BTree(Name = "Location", Columns = ["X", "Y", "Z"])] +[SpacetimeDB.Index.BTree(Accessor = "Location", Columns = ["X", "Y", "Z"])] partial struct BTreeMultiColumn { public uint X; @@ -235,7 +235,7 @@ partial struct BTreeMultiColumn } [SpacetimeDB.Table] -[SpacetimeDB.Index.BTree(Name = "Location", Columns = ["X", "Y"])] +[SpacetimeDB.Index.BTree(Accessor = "Location", Columns = ["X", "Y"])] partial struct BTreeViews { [SpacetimeDB.PrimaryKey] @@ -274,19 +274,19 @@ public class Module [SpacetimeDB.ClientVisibilityFilter] public static readonly Filter ALL_PUBLIC_TABLES = new Filter.Sql("SELECT * FROM PublicTable"); - [SpacetimeDB.View(Name = "public_table_view", Public = true)] + [SpacetimeDB.View(Accessor = "public_table_view", Public = true)] public static PublicTable? PublicTableByIdentity(ViewContext ctx) { return (PublicTable?)ctx.Db.PublicTable.Id.Find(0); } - [SpacetimeDB.View(Name = "public_table_query", Public = true)] + [SpacetimeDB.View(Accessor = "public_table_query", Public = true)] public static Query PublicTableQuery(ViewContext ctx) { return ctx.From.PublicTable().Where(cols => cols.Id.Eq(0)).Build(); } - [SpacetimeDB.View(Name = "find_public_table__by_identity", Public = true)] + [SpacetimeDB.View(Accessor = "find_public_table__by_identity", Public = true)] public static PublicTable? FindPublicTableByIdentity(AnonymousViewContext ctx) { return (PublicTable?)ctx.Db.PublicTable.Id.Find(0); diff --git a/crates/bindings-csharp/Codegen/Module.cs b/crates/bindings-csharp/Codegen/Module.cs index dac599618c9..cbde9cf247b 100644 --- a/crates/bindings-csharp/Codegen/Module.cs +++ b/crates/bindings-csharp/Codegen/Module.cs @@ -221,7 +221,7 @@ public TableAccessor(TableDeclaration table, AttributeData data, DiagReporter di { var attr = data.ParseAs(); - Name = attr.Name ?? table.ShortName; + Name = attr.Accessor ?? table.ShortName; IsPublic = attr.Public; IsEvent = attr.Event; if ( @@ -318,7 +318,7 @@ public TableIndex(ColumnRef col) /// Used internally by other constructors that parse attributes. /// private TableIndex(Index.BTreeAttribute attr, ImmutableArray columns) - : this(attr.Name, columns, attr.Table, TableIndexType.BTree) { } + : this(attr.Accessor, columns, attr.Table, TableIndexType.BTree) { } /// /// Creates an index from a table declaration and attribute data. @@ -1068,7 +1068,7 @@ public ViewDeclaration(GeneratorAttributeSyntaxContext context, DiagReporter dia var isAnonymousContext = firstParamType?.Name == "AnonymousViewContext"; var hasArguments = method.Parameters.Length > 1; - if (string.IsNullOrEmpty(attr.Name)) + if (string.IsNullOrEmpty(attr.Accessor)) { diag.Report(ErrorDescriptor.ViewMustHaveName, methodSyntax); } @@ -1082,7 +1082,7 @@ public ViewDeclaration(GeneratorAttributeSyntaxContext context, DiagReporter dia diag.Report(ErrorDescriptor.ViewArgsUnsupported, methodSyntax); } - Name = attr.Name ?? method.Name; + Name = attr.Accessor ?? method.Name; FullName = SymbolToName(method); IsPublic = attr.Public; IsAnonymous = isAnonymousContext; diff --git a/crates/bindings-csharp/Runtime/Attrs.cs b/crates/bindings-csharp/Runtime/Attrs.cs index 9212b31017a..f9f46e5090a 100644 --- a/crates/bindings-csharp/Runtime/Attrs.cs +++ b/crates/bindings-csharp/Runtime/Attrs.cs @@ -58,7 +58,7 @@ public sealed class TableAttribute : Attribute /// /// Defaults to the nameof of the target type. /// - public string? Name { get; init; } + public string? Accessor { get; init; } /// /// Set to true to make the table visible to everyone. @@ -92,7 +92,7 @@ public sealed class ViewAttribute : Attribute /// /// Views must have an explicit name. /// - public string? Name { get; init; } + public string? Accessor { get; init; } /// /// Marks the view as callable by any client. Leave false to restrict to the module owner. @@ -108,7 +108,7 @@ public abstract class Index : Attribute { public string? Table { get; init; } - public string? Name { get; init; } + public string? Accessor { get; init; } public sealed class BTreeAttribute : Index { diff --git a/demo/Blackholio/server-csharp/Lib.cs b/demo/Blackholio/server-csharp/Lib.cs index 20e26cf99e6..5477f942c1d 100644 --- a/demo/Blackholio/server-csharp/Lib.cs +++ b/demo/Blackholio/server-csharp/Lib.cs @@ -20,7 +20,7 @@ public static partial class Module #region Tables - [Table(Name = "config", Public = true)] + [Table(Accessor = "config", Public = true)] public partial struct Config { [PrimaryKey] @@ -28,8 +28,8 @@ public partial struct Config public long world_size; } - [Table(Name = "entity", Public = true)] - [Table(Name = "logged_out_entity")] + [Table(Accessor = "entity", Public = true)] + [Table(Accessor = "logged_out_entity")] public partial struct Entity { [PrimaryKey, AutoInc] @@ -38,9 +38,9 @@ public partial struct Entity public int mass; } - [Table(Name = "circle", Public = true)] - [SpacetimeDB.Index.BTree(Name = "player_id", Columns = [nameof(player_id)])] - [Table(Name = "logged_out_circle")] + [Table(Accessor = "circle", Public = true)] + [SpacetimeDB.Index.BTree(Accessor = "player_id", Columns = [nameof(player_id)])] + [Table(Accessor = "logged_out_circle")] public partial struct Circle { [PrimaryKey] @@ -51,8 +51,8 @@ public partial struct Circle public SpacetimeDB.Timestamp last_split_time; } - [Table(Name = "player", Public = true)] - [Table(Name = "logged_out_player")] + [Table(Accessor = "player", Public = true)] + [Table(Accessor = "logged_out_player")] public partial struct Player { [PrimaryKey] @@ -62,14 +62,14 @@ public partial struct Player public string name; } - [Table(Name = "food", Public = true)] + [Table(Accessor = "food", Public = true)] public partial struct Food { [PrimaryKey] public int entity_id; } - [Table(Name = "move_all_players_timer", Scheduled = nameof(MoveAllPlayers), ScheduledAt = nameof(scheduled_at))] + [Table(Accessor = "move_all_players_timer", Scheduled = nameof(MoveAllPlayers), ScheduledAt = nameof(scheduled_at))] public partial struct MoveAllPlayersTimer { [PrimaryKey, AutoInc] @@ -77,7 +77,7 @@ public partial struct MoveAllPlayersTimer public ScheduleAt scheduled_at; } - [Table(Name = "spawn_food_timer", Scheduled = nameof(SpawnFood), ScheduledAt = nameof(scheduled_at))] + [Table(Accessor = "spawn_food_timer", Scheduled = nameof(SpawnFood), ScheduledAt = nameof(scheduled_at))] public partial struct SpawnFoodTimer { [PrimaryKey, AutoInc] @@ -85,7 +85,7 @@ public partial struct SpawnFoodTimer public ScheduleAt scheduled_at; } - [Table(Name = "circle_decay_timer", Scheduled = nameof(CircleDecay), ScheduledAt = nameof(scheduled_at))] + [Table(Accessor = "circle_decay_timer", Scheduled = nameof(CircleDecay), ScheduledAt = nameof(scheduled_at))] public partial struct CircleDecayTimer { [PrimaryKey, AutoInc] @@ -93,7 +93,7 @@ public partial struct CircleDecayTimer public ScheduleAt scheduled_at; } - [Table(Name = "circle_recombine_timer", Scheduled = nameof(CircleRecombine), ScheduledAt = nameof(scheduled_at))] + [Table(Accessor = "circle_recombine_timer", Scheduled = nameof(CircleRecombine), ScheduledAt = nameof(scheduled_at))] public partial struct CircleRecombineTimer { [PrimaryKey, AutoInc] @@ -102,7 +102,7 @@ public partial struct CircleRecombineTimer public int player_id; } - [Table(Name = "consume_entity_timer", Scheduled = nameof(ConsumeEntity), ScheduledAt = nameof(scheduled_at))] + [Table(Accessor = "consume_entity_timer", Scheduled = nameof(ConsumeEntity), ScheduledAt = nameof(scheduled_at))] public partial struct ConsumeEntityTimer { [PrimaryKey, AutoInc] diff --git a/docs/test-csharp-snippets/Module.cs b/docs/test-csharp-snippets/Module.cs index 5e425eccd94..32056ab6d9e 100644 --- a/docs/test-csharp-snippets/Module.cs +++ b/docs/test-csharp-snippets/Module.cs @@ -12,7 +12,7 @@ public static ulong AddTwoNumbers(ProcedureContext ctx, uint lhs, uint rhs) } // === Snippet 2: Accessing the database === - [SpacetimeDB.Table(Name = "MyTable")] + [SpacetimeDB.Table(Accessor = "MyTable")] public partial struct MyTable { public uint A; @@ -45,7 +45,7 @@ public static void MaybeInsertAValue(ProcedureContext ctx, uint a, string b) } // === Snippet 4: Reading values out of the database === - [SpacetimeDB.Table(Name = "Player")] + [SpacetimeDB.Table(Accessor = "Player")] public partial struct Player { public Identity Id; @@ -154,7 +154,7 @@ private static ulong ParseId(string body) } // === Snippet 8: External AI API example === - [SpacetimeDB.Table(Name = "AiMessage", Public = true)] + [SpacetimeDB.Table(Accessor = "AiMessage", Public = true)] public partial struct AiMessage { public Identity User; @@ -227,7 +227,7 @@ public static string AskAi(ProcedureContext ctx, string prompt, string apiKey) } // === Snippet 9: File Storage - S3 Upload === - [SpacetimeDB.Table(Name = "Document", Public = true)] + [SpacetimeDB.Table(Accessor = "Document", Public = true)] public partial struct Document { [SpacetimeDB.PrimaryKey] diff --git a/modules/benchmarks-cs/circles.cs b/modules/benchmarks-cs/circles.cs index d369427e551..9777ac79fb7 100644 --- a/modules/benchmarks-cs/circles.cs +++ b/modules/benchmarks-cs/circles.cs @@ -11,7 +11,7 @@ public partial struct Vector2(float x, float y) public float y = y; } - [SpacetimeDB.Table(Name = "entity")] + [SpacetimeDB.Table(Accessor = "entity")] public partial struct Entity(uint id, float x, float y, uint mass) { [AutoInc] @@ -21,7 +21,7 @@ public partial struct Entity(uint id, float x, float y, uint mass) public uint mass = mass; } - [SpacetimeDB.Table(Name = "circle")] + [SpacetimeDB.Table(Accessor = "circle")] public partial struct Circle(uint entity_id, uint player_id, float x, float y, float magnitude) { [PrimaryKey] @@ -34,7 +34,7 @@ public partial struct Circle(uint entity_id, uint player_id, float x, float y, f public Timestamp last_split_time = (Timestamp)DateTimeOffset.UtcNow; } - [SpacetimeDB.Table(Name = "food")] + [SpacetimeDB.Table(Accessor = "food")] public partial struct Food(uint entity_id) { [PrimaryKey] diff --git a/modules/benchmarks-cs/ia_loop.cs b/modules/benchmarks-cs/ia_loop.cs index bcd9b772159..7a2739f26be 100644 --- a/modules/benchmarks-cs/ia_loop.cs +++ b/modules/benchmarks-cs/ia_loop.cs @@ -4,7 +4,7 @@ namespace Benchmarks; public static partial class ia_loop { - [SpacetimeDB.Table(Name = "velocity")] + [SpacetimeDB.Table(Accessor = "velocity")] public partial struct Velocity(uint entity_id, float x, float y, float z) { [PrimaryKey] @@ -14,7 +14,7 @@ public partial struct Velocity(uint entity_id, float x, float y, float z) public float z = z; } - [SpacetimeDB.Table(Name = "position")] + [SpacetimeDB.Table(Accessor = "position")] public partial struct Position(uint entity_id, float x, float y, float z) { [PrimaryKey] @@ -44,7 +44,7 @@ public enum AgentAction Fighting, } - [SpacetimeDB.Table(Name = "game_enemy_ai_agent_state")] + [SpacetimeDB.Table(Accessor = "game_enemy_ai_agent_state")] public partial struct GameEnemyAiAgentState( ulong entity_id, List last_move_timestamps, @@ -59,7 +59,7 @@ AgentAction action public AgentAction action = action; } - [SpacetimeDB.Table(Name = "game_targetable_state")] + [SpacetimeDB.Table(Accessor = "game_targetable_state")] public partial struct GameTargetableState(ulong entity_id, long quad) { [PrimaryKey] @@ -68,7 +68,7 @@ public partial struct GameTargetableState(ulong entity_id, long quad) public long quad = quad; } - [SpacetimeDB.Table(Name = "game_live_targetable_state")] + [SpacetimeDB.Table(Accessor = "game_live_targetable_state")] public partial struct GameLiveTargetableState(ulong entity_id, long quad) { [Unique] @@ -78,7 +78,7 @@ public partial struct GameLiveTargetableState(ulong entity_id, long quad) public long quad = quad; } - [SpacetimeDB.Table(Name = "game_mobile_entity_state")] + [SpacetimeDB.Table(Accessor = "game_mobile_entity_state")] public partial struct GameMobileEntityState( ulong entity_id, int location_x, @@ -95,7 +95,7 @@ ulong timestamp public ulong timestamp = timestamp; } - [SpacetimeDB.Table(Name = "game_enemy_state")] + [SpacetimeDB.Table(Accessor = "game_enemy_state")] public partial struct GameEnemyState(ulong entity_id, int herd_id) { [PrimaryKey] @@ -111,7 +111,7 @@ public partial struct SmallHexTile(int x, int z, uint dimension) public uint dimension = dimension; } - [SpacetimeDB.Table(Name = "game_herd_cache")] + [SpacetimeDB.Table(Accessor = "game_herd_cache")] public partial struct GameHerdCache( int id, uint dimension_id, diff --git a/modules/benchmarks-cs/synthetic.cs b/modules/benchmarks-cs/synthetic.cs index b9381d41aed..2b5d285639c 100644 --- a/modules/benchmarks-cs/synthetic.cs +++ b/modules/benchmarks-cs/synthetic.cs @@ -6,7 +6,7 @@ public static partial class synthetic { // ---------- schemas ---------- - [SpacetimeDB.Table(Name = "unique_0_u32_u64_str")] + [SpacetimeDB.Table(Accessor = "unique_0_u32_u64_str")] public partial struct unique_0_u32_u64_str_t { [PrimaryKey] @@ -15,7 +15,7 @@ public partial struct unique_0_u32_u64_str_t public string name; } - [SpacetimeDB.Table(Name = "no_index_u32_u64_str")] + [SpacetimeDB.Table(Accessor = "no_index_u32_u64_str")] public partial struct no_index_u32_u64_str_t { public uint id; @@ -23,7 +23,7 @@ public partial struct no_index_u32_u64_str_t public string name; } - [SpacetimeDB.Table(Name = "btree_each_column_u32_u64_str")] + [SpacetimeDB.Table(Accessor = "btree_each_column_u32_u64_str")] public partial struct btree_each_column_u32_u64_str_t { [SpacetimeDB.Index.BTree] @@ -36,7 +36,7 @@ public partial struct btree_each_column_u32_u64_str_t public string name; } - [SpacetimeDB.Table(Name = "unique_0_u32_u64_u64")] + [SpacetimeDB.Table(Accessor = "unique_0_u32_u64_u64")] public partial struct unique_0_u32_u64_u64_t { [PrimaryKey] @@ -45,7 +45,7 @@ public partial struct unique_0_u32_u64_u64_t public ulong y; } - [SpacetimeDB.Table(Name = "no_index_u32_u64_u64")] + [SpacetimeDB.Table(Accessor = "no_index_u32_u64_u64")] public partial struct no_index_u32_u64_u64_t { public uint id; @@ -53,7 +53,7 @@ public partial struct no_index_u32_u64_u64_t public ulong y; } - [SpacetimeDB.Table(Name = "btree_each_column_u32_u64_u64")] + [SpacetimeDB.Table(Accessor = "btree_each_column_u32_u64_u64")] public partial struct btree_each_column_u32_u64_u64_t { [SpacetimeDB.Index.BTree] diff --git a/modules/module-test-cs/Lib.cs b/modules/module-test-cs/Lib.cs index a8d7d7a05ba..2f29ac021bc 100644 --- a/modules/module-test-cs/Lib.cs +++ b/modules/module-test-cs/Lib.cs @@ -10,7 +10,7 @@ namespace SpacetimeDB.Modules.ModuleTestCs; // TABLE DEFINITIONS // ───────────────────────────────────────────────────────────────────────────── -[Table(Name = "person", Public = true)] +[Table(Accessor = "person", Public = true)] public partial struct Person { [PrimaryKey] @@ -22,11 +22,11 @@ public partial struct Person public byte age; } -[Table(Name = "test_a")] +[Table(Accessor = "test_a")] public partial struct TestA { // The index on column "x" is given the name "foo". - [Index.BTree(Name = "foo")] + [Index.BTree(Accessor = "foo")] public uint x; public uint y; public string z; @@ -48,14 +48,14 @@ public enum TestC Bar } -[Table(Name = "test_d", Public = true)] +[Table(Accessor = "test_d", Public = true)] public partial struct TestD { // In Rust this was an Option; in C# we use a nullable enum. public TestC? test_c; } -[Table(Name = "test_e")] +[Table(Accessor = "test_e")] public partial struct TestE { [PrimaryKey] @@ -82,7 +82,7 @@ public partial record Foobar : TaggedEnum<(Baz Baz, Bar Bar, uint Har)> { } -[Table(Name = "test_f", Public = true)] +[Table(Accessor = "test_f", Public = true)] public partial struct TestFoobar { public Foobar field; @@ -109,29 +109,29 @@ public partial record TestF : TaggedEnum<(TestFFoo Foo, TestFBar Bar, TestFBaz B // FIXME: Table named "private" doesn't compile in C# // When you fix me, uncomment the code in module-test -// [Table(Name = "private", Public = true)] +// [Table(Accessor = "private", Public = true)] // public partial struct TypeNamedPrivateIsNotTheProblem // { // public string name; // } // A table marked as private. -[Table(Name = "private_table", Public = false)] +[Table(Accessor = "private_table", Public = false)] public partial struct PrivateTable { public string name; } // A table with a multi‑column index. -[Table(Name = "points", Public = false)] -[Index.BTree(Name = "multi_column_index", Columns = new[] { "x", "y" })] +[Table(Accessor = "points", Public = false)] +[Index.BTree(Accessor = "multi_column_index", Columns = new[] { "x", "y" })] public partial struct Point { public long x; public long y; } -[Table(Name = "pk_multi_identity")] +[Table(Accessor = "pk_multi_identity")] public partial struct PkMultiIdentity { [PrimaryKey] @@ -141,7 +141,7 @@ public partial struct PkMultiIdentity public uint other; } -[Table(Name = "repeating_test_arg", Scheduled = nameof(Module.repeating_test), ScheduledAt = nameof(scheduled_at))] +[Table(Accessor = "repeating_test_arg", Scheduled = nameof(Module.repeating_test), ScheduledAt = nameof(scheduled_at))] public partial struct RepeatingTestArg { [PrimaryKey] @@ -151,7 +151,7 @@ public partial struct RepeatingTestArg public Timestamp prev_time; } -[Table(Name = "has_special_stuff")] +[Table(Accessor = "has_special_stuff")] public partial struct HasSpecialStuff { public Identity identity; @@ -159,8 +159,8 @@ public partial struct HasSpecialStuff } // Two tables using the same row type. -[Table(Name = "player", Public = true)] -[Table(Name = "logged_out_player", Public = true)] +[Table(Accessor = "player", Public = true)] +[Table(Accessor = "logged_out_player", Public = true)] public partial struct Player { public Player() @@ -178,7 +178,7 @@ public Player() public string name; } -[Table(Name = "table_to_remove")] +[Table(Accessor = "table_to_remove")] public partial struct TableToRemove { public uint id; @@ -216,7 +216,7 @@ static partial class Module // VIEWS // ───────────────────────────────────────────────────────────────────────────── - [View(Name = "my_player", Public = true)] + [View(Accessor = "my_player", Public = true)] public static Player? my_player(ViewContext ctx) { return (Player?)ctx.Db.player.identity.Find(ctx.Sender); diff --git a/modules/sdk-test-connect-disconnect-cs/Lib.cs b/modules/sdk-test-connect-disconnect-cs/Lib.cs index 79af81d8cc4..41c8e5c5a66 100644 --- a/modules/sdk-test-connect-disconnect-cs/Lib.cs +++ b/modules/sdk-test-connect-disconnect-cs/Lib.cs @@ -2,13 +2,13 @@ namespace SpacetimeDB.Sdk.Test.ConnectDisconnect; using SpacetimeDB; -[SpacetimeDB.Table(Name = "connected", Public = true)] +[SpacetimeDB.Table(Accessor = "connected", Public = true)] public partial struct Connected { public Identity identity; } -[SpacetimeDB.Table(Name = "disconnected", Public = true)] +[SpacetimeDB.Table(Accessor = "disconnected", Public = true)] public partial struct Disconnected { public Identity identity; diff --git a/modules/sdk-test-cs/Lib.cs b/modules/sdk-test-cs/Lib.cs index 8b4b849d199..7fec0c0edef 100644 --- a/modules/sdk-test-cs/Lib.cs +++ b/modules/sdk-test-cs/Lib.cs @@ -104,7 +104,7 @@ public partial struct EveryVecStruct public List u; } - [SpacetimeDB.Table(Name = "one_u8", Public = true)] + [SpacetimeDB.Table(Accessor = "one_u8", Public = true)] public partial struct OneU8 { public byte n; @@ -116,7 +116,7 @@ public static void insert_one_u8(ReducerContext ctx, byte n) ctx.Db.one_u8.Insert(new OneU8 { n = n }); } - [SpacetimeDB.Table(Name = "one_u16", Public = true)] + [SpacetimeDB.Table(Accessor = "one_u16", Public = true)] public partial struct OneU16 { public ushort n; @@ -128,7 +128,7 @@ public static void insert_one_u16(ReducerContext ctx, ushort n) ctx.Db.one_u16.Insert(new OneU16 { n = n }); } - [SpacetimeDB.Table(Name = "one_u32", Public = true)] + [SpacetimeDB.Table(Accessor = "one_u32", Public = true)] public partial struct OneU32 { public uint n; @@ -140,7 +140,7 @@ public static void insert_one_u32(ReducerContext ctx, uint n) ctx.Db.one_u32.Insert(new OneU32 { n = n }); } - [SpacetimeDB.Table(Name = "one_u64", Public = true)] + [SpacetimeDB.Table(Accessor = "one_u64", Public = true)] public partial struct OneU64 { public ulong n; @@ -152,7 +152,7 @@ public static void insert_one_u64(ReducerContext ctx, ulong n) ctx.Db.one_u64.Insert(new OneU64 { n = n }); } - [SpacetimeDB.Table(Name = "one_u128", Public = true)] + [SpacetimeDB.Table(Accessor = "one_u128", Public = true)] public partial struct OneU128 { public U128 n; @@ -164,7 +164,7 @@ public static void insert_one_u128(ReducerContext ctx, U128 n) ctx.Db.one_u128.Insert(new OneU128 { n = n }); } - [SpacetimeDB.Table(Name = "one_u256", Public = true)] + [SpacetimeDB.Table(Accessor = "one_u256", Public = true)] public partial struct OneU256 { public U256 n; @@ -176,7 +176,7 @@ public static void insert_one_u256(ReducerContext ctx, U256 n) ctx.Db.one_u256.Insert(new OneU256 { n = n }); } - [SpacetimeDB.Table(Name = "one_i8", Public = true)] + [SpacetimeDB.Table(Accessor = "one_i8", Public = true)] public partial struct OneI8 { public sbyte n; @@ -188,7 +188,7 @@ public static void insert_one_i8(ReducerContext ctx, sbyte n) ctx.Db.one_i8.Insert(new OneI8 { n = n }); } - [SpacetimeDB.Table(Name = "one_i16", Public = true)] + [SpacetimeDB.Table(Accessor = "one_i16", Public = true)] public partial struct OneI16 { public short n; @@ -200,7 +200,7 @@ public static void insert_one_i16(ReducerContext ctx, short n) ctx.Db.one_i16.Insert(new OneI16 { n = n }); } - [SpacetimeDB.Table(Name = "one_i32", Public = true)] + [SpacetimeDB.Table(Accessor = "one_i32", Public = true)] public partial struct OneI32 { public int n; @@ -212,7 +212,7 @@ public static void insert_one_i32(ReducerContext ctx, int n) ctx.Db.one_i32.Insert(new OneI32 { n = n }); } - [SpacetimeDB.Table(Name = "one_i64", Public = true)] + [SpacetimeDB.Table(Accessor = "one_i64", Public = true)] public partial struct OneI64 { public long n; @@ -224,7 +224,7 @@ public static void insert_one_i64(ReducerContext ctx, long n) ctx.Db.one_i64.Insert(new OneI64 { n = n }); } - [SpacetimeDB.Table(Name = "one_i128", Public = true)] + [SpacetimeDB.Table(Accessor = "one_i128", Public = true)] public partial struct OneI128 { public I128 n; @@ -236,7 +236,7 @@ public static void insert_one_i128(ReducerContext ctx, I128 n) ctx.Db.one_i128.Insert(new OneI128 { n = n }); } - [SpacetimeDB.Table(Name = "one_i256", Public = true)] + [SpacetimeDB.Table(Accessor = "one_i256", Public = true)] public partial struct OneI256 { public I256 n; @@ -248,7 +248,7 @@ public static void insert_one_i256(ReducerContext ctx, I256 n) ctx.Db.one_i256.Insert(new OneI256 { n = n }); } - [SpacetimeDB.Table(Name = "one_bool", Public = true)] + [SpacetimeDB.Table(Accessor = "one_bool", Public = true)] public partial struct OneBool { public bool b; @@ -260,7 +260,7 @@ public static void insert_one_bool(ReducerContext ctx, bool b) ctx.Db.one_bool.Insert(new OneBool { b = b }); } - [SpacetimeDB.Table(Name = "one_f32", Public = true)] + [SpacetimeDB.Table(Accessor = "one_f32", Public = true)] public partial struct OneF32 { public float f; @@ -272,7 +272,7 @@ public static void insert_one_f32(ReducerContext ctx, float f) ctx.Db.one_f32.Insert(new OneF32 { f = f }); } - [SpacetimeDB.Table(Name = "one_f64", Public = true)] + [SpacetimeDB.Table(Accessor = "one_f64", Public = true)] public partial struct OneF64 { public double f; @@ -284,7 +284,7 @@ public static void insert_one_f64(ReducerContext ctx, double f) ctx.Db.one_f64.Insert(new OneF64 { f = f }); } - [SpacetimeDB.Table(Name = "one_string", Public = true)] + [SpacetimeDB.Table(Accessor = "one_string", Public = true)] public partial struct OneString { public string s; @@ -296,7 +296,7 @@ public static void insert_one_string(ReducerContext ctx, string s) ctx.Db.one_string.Insert(new OneString { s = s }); } - [SpacetimeDB.Table(Name = "one_identity", Public = true)] + [SpacetimeDB.Table(Accessor = "one_identity", Public = true)] public partial struct OneIdentity { public Identity i; @@ -308,7 +308,7 @@ public static void insert_one_identity(ReducerContext ctx, Identity i) ctx.Db.one_identity.Insert(new OneIdentity { i = i }); } - [SpacetimeDB.Table(Name = "one_connection_id", Public = true)] + [SpacetimeDB.Table(Accessor = "one_connection_id", Public = true)] public partial struct OneConnectionId { public ConnectionId a; @@ -320,7 +320,7 @@ public static void insert_one_connection_id(ReducerContext ctx, ConnectionId a) ctx.Db.one_connection_id.Insert(new OneConnectionId { a = a }); } - [SpacetimeDB.Table(Name = "one_uuid", Public = true)] + [SpacetimeDB.Table(Accessor = "one_uuid", Public = true)] public partial struct OneUuid { public Uuid u; @@ -332,7 +332,7 @@ public static void insert_one_uuid(ReducerContext ctx, Uuid u) ctx.Db.one_uuid.Insert(new OneUuid { u = u }); } - [SpacetimeDB.Table(Name = "one_timestamp", Public = true)] + [SpacetimeDB.Table(Accessor = "one_timestamp", Public = true)] public partial struct OneTimestamp { public Timestamp t; @@ -344,7 +344,7 @@ public static void insert_one_timestamp(ReducerContext ctx, Timestamp t) ctx.Db.one_timestamp.Insert(new OneTimestamp { t = t }); } - [SpacetimeDB.Table(Name = "one_simple_enum", Public = true)] + [SpacetimeDB.Table(Accessor = "one_simple_enum", Public = true)] public partial struct OneSimpleEnum { public SimpleEnum e; @@ -356,7 +356,7 @@ public static void insert_one_simple_enum(ReducerContext ctx, SimpleEnum e) ctx.Db.one_simple_enum.Insert(new OneSimpleEnum { e = e }); } - [SpacetimeDB.Table(Name = "one_enum_with_payload", Public = true)] + [SpacetimeDB.Table(Accessor = "one_enum_with_payload", Public = true)] public partial struct OneEnumWithPayload { public EnumWithPayload e; @@ -368,7 +368,7 @@ public static void insert_one_enum_with_payload(ReducerContext ctx, EnumWithPayl ctx.Db.one_enum_with_payload.Insert(new OneEnumWithPayload { e = e }); } - [SpacetimeDB.Table(Name = "one_unit_struct", Public = true)] + [SpacetimeDB.Table(Accessor = "one_unit_struct", Public = true)] public partial struct OneUnitStruct { public UnitStruct s; @@ -380,7 +380,7 @@ public static void insert_one_unit_struct(ReducerContext ctx, UnitStruct s) ctx.Db.one_unit_struct.Insert(new OneUnitStruct { s = s }); } - [SpacetimeDB.Table(Name = "one_byte_struct", Public = true)] + [SpacetimeDB.Table(Accessor = "one_byte_struct", Public = true)] public partial struct OneByteStruct { public ByteStruct s; @@ -392,7 +392,7 @@ public static void insert_one_byte_struct(ReducerContext ctx, ByteStruct s) ctx.Db.one_byte_struct.Insert(new OneByteStruct { s = s }); } - [SpacetimeDB.Table(Name = "one_every_primitive_struct", Public = true)] + [SpacetimeDB.Table(Accessor = "one_every_primitive_struct", Public = true)] public partial struct OneEveryPrimitiveStruct { public EveryPrimitiveStruct s; @@ -404,7 +404,7 @@ public static void insert_one_every_primitive_struct(ReducerContext ctx, EveryPr ctx.Db.one_every_primitive_struct.Insert(new OneEveryPrimitiveStruct { s = s }); } - [SpacetimeDB.Table(Name = "one_every_vec_struct", Public = true)] + [SpacetimeDB.Table(Accessor = "one_every_vec_struct", Public = true)] public partial struct OneEveryVecStruct { public EveryVecStruct s; @@ -416,7 +416,7 @@ public static void insert_one_every_vec_struct(ReducerContext ctx, EveryVecStruc ctx.Db.one_every_vec_struct.Insert(new OneEveryVecStruct { s = s }); } - [SpacetimeDB.Table(Name = "vec_u8", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_u8", Public = true)] public partial struct VecU8 { public List n; @@ -428,7 +428,7 @@ public static void insert_vec_u8(ReducerContext ctx, List n) ctx.Db.vec_u8.Insert(new VecU8 { n = n }); } - [SpacetimeDB.Table(Name = "vec_u16", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_u16", Public = true)] public partial struct VecU16 { public List n; @@ -440,7 +440,7 @@ public static void insert_vec_u16(ReducerContext ctx, List n) ctx.Db.vec_u16.Insert(new VecU16 { n = n }); } - [SpacetimeDB.Table(Name = "vec_u32", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_u32", Public = true)] public partial struct VecU32 { public List n; @@ -452,7 +452,7 @@ public static void insert_vec_u32(ReducerContext ctx, List n) ctx.Db.vec_u32.Insert(new VecU32 { n = n }); } - [SpacetimeDB.Table(Name = "vec_u64", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_u64", Public = true)] public partial struct VecU64 { public List n; @@ -464,7 +464,7 @@ public static void insert_vec_u64(ReducerContext ctx, List n) ctx.Db.vec_u64.Insert(new VecU64 { n = n }); } - [SpacetimeDB.Table(Name = "vec_u128", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_u128", Public = true)] public partial struct VecU128 { public List n; @@ -476,7 +476,7 @@ public static void insert_vec_u128(ReducerContext ctx, List n) ctx.Db.vec_u128.Insert(new VecU128 { n = n }); } - [SpacetimeDB.Table(Name = "vec_u256", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_u256", Public = true)] public partial struct VecU256 { public List n; @@ -488,7 +488,7 @@ public static void insert_vec_u256(ReducerContext ctx, List n) ctx.Db.vec_u256.Insert(new VecU256 { n = n }); } - [SpacetimeDB.Table(Name = "vec_i8", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_i8", Public = true)] public partial struct VecI8 { public List n; @@ -500,7 +500,7 @@ public static void insert_vec_i8(ReducerContext ctx, List n) ctx.Db.vec_i8.Insert(new VecI8 { n = n }); } - [SpacetimeDB.Table(Name = "vec_i16", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_i16", Public = true)] public partial struct VecI16 { public List n; @@ -512,7 +512,7 @@ public static void insert_vec_i16(ReducerContext ctx, List n) ctx.Db.vec_i16.Insert(new VecI16 { n = n }); } - [SpacetimeDB.Table(Name = "vec_i32", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_i32", Public = true)] public partial struct VecI32 { public List n; @@ -524,7 +524,7 @@ public static void insert_vec_i32(ReducerContext ctx, List n) ctx.Db.vec_i32.Insert(new VecI32 { n = n }); } - [SpacetimeDB.Table(Name = "vec_i64", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_i64", Public = true)] public partial struct VecI64 { public List n; @@ -536,7 +536,7 @@ public static void insert_vec_i64(ReducerContext ctx, List n) ctx.Db.vec_i64.Insert(new VecI64 { n = n }); } - [SpacetimeDB.Table(Name = "vec_i128", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_i128", Public = true)] public partial struct VecI128 { public List n; @@ -548,7 +548,7 @@ public static void insert_vec_i128(ReducerContext ctx, List n) ctx.Db.vec_i128.Insert(new VecI128 { n = n }); } - [SpacetimeDB.Table(Name = "vec_i256", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_i256", Public = true)] public partial struct VecI256 { public List n; @@ -560,7 +560,7 @@ public static void insert_vec_i256(ReducerContext ctx, List n) ctx.Db.vec_i256.Insert(new VecI256 { n = n }); } - [SpacetimeDB.Table(Name = "vec_bool", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_bool", Public = true)] public partial struct VecBool { public List b; @@ -572,7 +572,7 @@ public static void insert_vec_bool(ReducerContext ctx, List b) ctx.Db.vec_bool.Insert(new VecBool { b = b }); } - [SpacetimeDB.Table(Name = "vec_f32", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_f32", Public = true)] public partial struct VecF32 { public List f; @@ -584,7 +584,7 @@ public static void insert_vec_f32(ReducerContext ctx, List f) ctx.Db.vec_f32.Insert(new VecF32 { f = f }); } - [SpacetimeDB.Table(Name = "vec_f64", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_f64", Public = true)] public partial struct VecF64 { public List f; @@ -596,7 +596,7 @@ public static void insert_vec_f64(ReducerContext ctx, List f) ctx.Db.vec_f64.Insert(new VecF64 { f = f }); } - [SpacetimeDB.Table(Name = "vec_string", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_string", Public = true)] public partial struct VecString { public List s; @@ -608,7 +608,7 @@ public static void insert_vec_string(ReducerContext ctx, List s) ctx.Db.vec_string.Insert(new VecString { s = s }); } - [SpacetimeDB.Table(Name = "vec_identity", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_identity", Public = true)] public partial struct VecIdentity { public List i; @@ -620,7 +620,7 @@ public static void insert_vec_identity(ReducerContext ctx, List i) ctx.Db.vec_identity.Insert(new VecIdentity { i = i }); } - [SpacetimeDB.Table(Name = "vec_connection_id", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_connection_id", Public = true)] public partial struct VecConnectionId { public List a; @@ -632,7 +632,7 @@ public static void insert_vec_connection_id(ReducerContext ctx, List u; @@ -644,7 +644,7 @@ public static void insert_vec_uuid(ReducerContext ctx, List u) ctx.Db.vec_uuid.Insert(new VecUuid { u = u }); } - [SpacetimeDB.Table(Name = "vec_timestamp", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_timestamp", Public = true)] public partial struct VecTimestamp { public List t; @@ -656,7 +656,7 @@ public static void insert_vec_timestamp(ReducerContext ctx, List t) ctx.Db.vec_timestamp.Insert(new VecTimestamp { t = t }); } - [SpacetimeDB.Table(Name = "vec_simple_enum", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_simple_enum", Public = true)] public partial struct VecSimpleEnum { public List e; @@ -668,7 +668,7 @@ public static void insert_vec_simple_enum(ReducerContext ctx, List e ctx.Db.vec_simple_enum.Insert(new VecSimpleEnum { e = e }); } - [SpacetimeDB.Table(Name = "vec_enum_with_payload", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_enum_with_payload", Public = true)] public partial struct VecEnumWithPayload { public List e; @@ -680,7 +680,7 @@ public static void insert_vec_enum_with_payload(ReducerContext ctx, List s; @@ -692,7 +692,7 @@ public static void insert_vec_unit_struct(ReducerContext ctx, List s ctx.Db.vec_unit_struct.Insert(new VecUnitStruct { s = s }); } - [SpacetimeDB.Table(Name = "vec_byte_struct", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_byte_struct", Public = true)] public partial struct VecByteStruct { public List s; @@ -704,7 +704,7 @@ public static void insert_vec_byte_struct(ReducerContext ctx, List s ctx.Db.vec_byte_struct.Insert(new VecByteStruct { s = s }); } - [SpacetimeDB.Table(Name = "vec_every_primitive_struct", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_every_primitive_struct", Public = true)] public partial struct VecEveryPrimitiveStruct { public List s; @@ -719,7 +719,7 @@ List s ctx.Db.vec_every_primitive_struct.Insert(new VecEveryPrimitiveStruct { s = s }); } - [SpacetimeDB.Table(Name = "vec_every_vec_struct", Public = true)] + [SpacetimeDB.Table(Accessor = "vec_every_vec_struct", Public = true)] public partial struct VecEveryVecStruct { public List s; @@ -731,7 +731,7 @@ public static void insert_vec_every_vec_struct(ReducerContext ctx, List r; @@ -818,7 +818,7 @@ public static void insert_result_i32_string(ReducerContext ctx, Result r; @@ -830,7 +830,7 @@ public static void insert_result_string_i32(ReducerContext ctx, Result r; @@ -842,7 +842,7 @@ public static void insert_result_identity_string(ReducerContext ctx, Result r; @@ -854,7 +854,7 @@ public static void insert_result_simple_enum_i32(ReducerContext ctx, Result r; @@ -871,7 +871,7 @@ Result r ); } - [Table(Name = "result_vec_i32_string", Public = true)] + [Table(Accessor = "result_vec_i32_string", Public = true)] public partial struct ResultVecI32String { public Result, string> r; @@ -886,7 +886,7 @@ Result, string> r ctx.Db.result_vec_i32_string.Insert(new ResultVecI32String { r = r }); } - [SpacetimeDB.Table(Name = "option_vec_option_i32", Public = true)] + [SpacetimeDB.Table(Accessor = "option_vec_option_i32", Public = true)] public partial struct OptionVecOptionI32 { public List? v; @@ -898,7 +898,7 @@ public static void insert_option_vec_option_i32(ReducerContext ctx, List? ctx.Db.option_vec_option_i32.Insert(new OptionVecOptionI32 { v = v }); } - [SpacetimeDB.Table(Name = "unique_u8", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_u8", Public = true)] public partial struct UniqueU8 { [SpacetimeDB.Unique] @@ -925,7 +925,7 @@ public static void delete_unique_u8(ReducerContext ctx, byte n) ctx.Db.unique_u8.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_u16", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_u16", Public = true)] public partial struct UniqueU16 { [SpacetimeDB.Unique] @@ -952,7 +952,7 @@ public static void delete_unique_u16(ReducerContext ctx, ushort n) ctx.Db.unique_u16.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_u32", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_u32", Public = true)] public partial struct UniqueU32 { [SpacetimeDB.Unique] @@ -991,7 +991,7 @@ public static void delete_unique_u32(ReducerContext ctx, uint n) ctx.Db.unique_u32.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_u64", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_u64", Public = true)] public partial struct UniqueU64 { [SpacetimeDB.Unique] @@ -1018,7 +1018,7 @@ public static void delete_unique_u64(ReducerContext ctx, ulong n) ctx.Db.unique_u64.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_u128", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_u128", Public = true)] public partial struct UniqueU128 { [SpacetimeDB.Unique] @@ -1045,7 +1045,7 @@ public static void delete_unique_u128(ReducerContext ctx, U128 n) ctx.Db.unique_u128.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_u256", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_u256", Public = true)] public partial struct UniqueU256 { [SpacetimeDB.Unique] @@ -1072,7 +1072,7 @@ public static void delete_unique_u256(ReducerContext ctx, U256 n) ctx.Db.unique_u256.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_i8", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_i8", Public = true)] public partial struct UniqueI8 { [SpacetimeDB.Unique] @@ -1099,7 +1099,7 @@ public static void delete_unique_i8(ReducerContext ctx, sbyte n) ctx.Db.unique_i8.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_i16", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_i16", Public = true)] public partial struct UniqueI16 { [SpacetimeDB.Unique] @@ -1126,7 +1126,7 @@ public static void delete_unique_i16(ReducerContext ctx, short n) ctx.Db.unique_i16.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_i32", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_i32", Public = true)] public partial struct UniqueI32 { [SpacetimeDB.Unique] @@ -1153,7 +1153,7 @@ public static void delete_unique_i32(ReducerContext ctx, int n) ctx.Db.unique_i32.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_i64", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_i64", Public = true)] public partial struct UniqueI64 { [SpacetimeDB.Unique] @@ -1180,7 +1180,7 @@ public static void delete_unique_i64(ReducerContext ctx, long n) ctx.Db.unique_i64.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_i128", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_i128", Public = true)] public partial struct UniqueI128 { [SpacetimeDB.Unique] @@ -1207,7 +1207,7 @@ public static void delete_unique_i128(ReducerContext ctx, I128 n) ctx.Db.unique_i128.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_i256", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_i256", Public = true)] public partial struct UniqueI256 { [SpacetimeDB.Unique] @@ -1234,7 +1234,7 @@ public static void delete_unique_i256(ReducerContext ctx, I256 n) ctx.Db.unique_i256.n.Delete(n); } - [SpacetimeDB.Table(Name = "unique_bool", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_bool", Public = true)] public partial struct UniqueBool { [SpacetimeDB.Unique] @@ -1261,7 +1261,7 @@ public static void delete_unique_bool(ReducerContext ctx, bool b) ctx.Db.unique_bool.b.Delete(b); } - [SpacetimeDB.Table(Name = "unique_string", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_string", Public = true)] public partial struct UniqueString { [SpacetimeDB.Unique] @@ -1288,7 +1288,7 @@ public static void delete_unique_string(ReducerContext ctx, string s) ctx.Db.unique_string.s.Delete(s); } - [SpacetimeDB.Table(Name = "unique_identity", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_identity", Public = true)] public partial struct UniqueIdentity { [SpacetimeDB.Unique] @@ -1315,7 +1315,7 @@ public static void delete_unique_identity(ReducerContext ctx, Identity i) ctx.Db.unique_identity.i.Delete(i); } - [SpacetimeDB.Table(Name = "unique_connection_id", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_connection_id", Public = true)] public partial struct UniqueConnectionId { [SpacetimeDB.Unique] @@ -1342,7 +1342,7 @@ public static void delete_unique_connection_id(ReducerContext ctx, ConnectionId ctx.Db.unique_connection_id.a.Delete(a); } - [SpacetimeDB.Table(Name = "unique_uuid", Public = true)] + [SpacetimeDB.Table(Accessor = "unique_uuid", Public = true)] public partial struct UniqueUuid { [SpacetimeDB.Unique] @@ -1369,7 +1369,7 @@ public static void delete_unique_uuid(ReducerContext ctx, Uuid u) ctx.Db.unique_uuid.u.Delete(u); } - [SpacetimeDB.Table(Name = "pk_u8", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_u8", Public = true)] public partial struct PkU8 { [SpacetimeDB.PrimaryKey] @@ -1396,7 +1396,7 @@ public static void delete_pk_u8(ReducerContext ctx, byte n) ctx.Db.pk_u8.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_u16", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_u16", Public = true)] public partial struct PkU16 { [SpacetimeDB.PrimaryKey] @@ -1423,7 +1423,7 @@ public static void delete_pk_u16(ReducerContext ctx, ushort n) ctx.Db.pk_u16.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_u32", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_u32", Public = true)] public partial struct PkU32 { [SpacetimeDB.PrimaryKey] @@ -1450,7 +1450,7 @@ public static void delete_pk_u32(ReducerContext ctx, uint n) ctx.Db.pk_u32.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_u32_two", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_u32_two", Public = true)] public partial struct PkU32Two { [SpacetimeDB.PrimaryKey] @@ -1484,7 +1484,7 @@ public static void delete_pk_u32_two(ReducerContext ctx, uint n) ctx.Db.pk_u32_two.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_u64", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_u64", Public = true)] public partial struct PkU64 { [SpacetimeDB.PrimaryKey] @@ -1511,7 +1511,7 @@ public static void delete_pk_u64(ReducerContext ctx, ulong n) ctx.Db.pk_u64.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_u128", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_u128", Public = true)] public partial struct PkU128 { [SpacetimeDB.PrimaryKey] @@ -1538,7 +1538,7 @@ public static void delete_pk_u128(ReducerContext ctx, U128 n) ctx.Db.pk_u128.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_u256", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_u256", Public = true)] public partial struct PkU256 { [SpacetimeDB.PrimaryKey] @@ -1565,7 +1565,7 @@ public static void delete_pk_u256(ReducerContext ctx, U256 n) ctx.Db.pk_u256.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_i8", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_i8", Public = true)] public partial struct PkI8 { [SpacetimeDB.PrimaryKey] @@ -1592,7 +1592,7 @@ public static void delete_pk_i8(ReducerContext ctx, sbyte n) ctx.Db.pk_i8.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_i16", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_i16", Public = true)] public partial struct PkI16 { [SpacetimeDB.PrimaryKey] @@ -1619,7 +1619,7 @@ public static void delete_pk_i16(ReducerContext ctx, short n) ctx.Db.pk_i16.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_i32", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_i32", Public = true)] public partial struct PkI32 { [SpacetimeDB.PrimaryKey] @@ -1646,7 +1646,7 @@ public static void delete_pk_i32(ReducerContext ctx, int n) ctx.Db.pk_i32.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_i64", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_i64", Public = true)] public partial struct PkI64 { [SpacetimeDB.PrimaryKey] @@ -1673,7 +1673,7 @@ public static void delete_pk_i64(ReducerContext ctx, long n) ctx.Db.pk_i64.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_i128", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_i128", Public = true)] public partial struct PkI128 { [SpacetimeDB.PrimaryKey] @@ -1700,7 +1700,7 @@ public static void delete_pk_i128(ReducerContext ctx, I128 n) ctx.Db.pk_i128.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_i256", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_i256", Public = true)] public partial struct PkI256 { [SpacetimeDB.PrimaryKey] @@ -1727,7 +1727,7 @@ public static void delete_pk_i256(ReducerContext ctx, I256 n) ctx.Db.pk_i256.n.Delete(n); } - [SpacetimeDB.Table(Name = "pk_bool", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_bool", Public = true)] public partial struct PkBool { [SpacetimeDB.PrimaryKey] @@ -1754,7 +1754,7 @@ public static void delete_pk_bool(ReducerContext ctx, bool b) ctx.Db.pk_bool.b.Delete(b); } - [SpacetimeDB.Table(Name = "pk_string", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_string", Public = true)] public partial struct PkString { [SpacetimeDB.PrimaryKey] @@ -1781,7 +1781,7 @@ public static void delete_pk_string(ReducerContext ctx, string s) ctx.Db.pk_string.s.Delete(s); } - [SpacetimeDB.Table(Name = "pk_identity", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_identity", Public = true)] public partial struct PkIdentity { [SpacetimeDB.PrimaryKey] @@ -1808,7 +1808,7 @@ public static void delete_pk_identity(ReducerContext ctx, Identity i) ctx.Db.pk_identity.i.Delete(i); } - [SpacetimeDB.Table(Name = "pk_connection_id", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_connection_id", Public = true)] public partial struct PkConnectionId { [SpacetimeDB.PrimaryKey] @@ -1835,7 +1835,7 @@ public static void delete_pk_connection_id(ReducerContext ctx, ConnectionId a) ctx.Db.pk_connection_id.a.Delete(a); } - [SpacetimeDB.Table(Name = "pk_uuid", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_uuid", Public = true)] public partial struct PkUuid { [SpacetimeDB.PrimaryKey] @@ -1862,7 +1862,7 @@ public static void delete_pk_uuid(ReducerContext ctx, Uuid u) ctx.Db.pk_uuid.u.Delete(u); } - [SpacetimeDB.Table(Name = "pk_simple_enum", Public = true)] + [SpacetimeDB.Table(Accessor = "pk_simple_enum", Public = true)] public partial struct PkSimpleEnum { [SpacetimeDB.PrimaryKey] @@ -1978,7 +1978,7 @@ List bt_u32 } } - [SpacetimeDB.Table(Name = "large_table", Public = true)] + [SpacetimeDB.Table(Accessor = "large_table", Public = true)] public partial struct LargeTable { public byte a; @@ -2158,7 +2158,7 @@ public static void insert_call_uuid_v7(ReducerContext ctx) ctx.Db.one_uuid.Insert(new OneUuid { u = ctx.NewUuidV7() }); } - [SpacetimeDB.Table(Name = "table_holds_table", Public = true)] + [SpacetimeDB.Table(Accessor = "table_holds_table", Public = true)] public partial struct TableHoldsTable { public OneU8 a; @@ -2177,8 +2177,7 @@ public static void no_op_succeeds(ReducerContext ctx) { } [SpacetimeDB.ClientVisibilityFilter] public static readonly Filter ONE_U8_VISIBLE = new Filter.Sql("SELECT * FROM one_u8"); - [SpacetimeDB.Table( - Name = "scheduled_table", + [SpacetimeDB.Table(Accessor = "scheduled_table", Scheduled = nameof(send_scheduled_message), ScheduledAt = nameof(scheduled_at), Public = true @@ -2200,16 +2199,15 @@ public static void send_scheduled_message(ReducerContext ctx, ScheduledTable arg string text = arg.text; } - [SpacetimeDB.Table(Name = "indexed_table")] + [SpacetimeDB.Table(Accessor = "indexed_table")] public partial struct IndexedTable { [SpacetimeDB.Index.BTree] uint player_id; } - [SpacetimeDB.Table(Name = "indexed_table_2")] - [SpacetimeDB.Index.BTree( - Name = "player_id_snazz_index", + [SpacetimeDB.Table(Accessor = "indexed_table_2")] + [SpacetimeDB.Index.BTree(Accessor = "player_id_snazz_index", Columns = [nameof(player_id), nameof(player_snazz)] )] public partial struct IndexedTable2 @@ -2218,7 +2216,7 @@ public partial struct IndexedTable2 float player_snazz; } - [SpacetimeDB.Table(Name = "btree_u32", Public = true)] + [SpacetimeDB.Table(Accessor = "btree_u32", Public = true)] public partial struct BTreeU32 { [SpacetimeDB.Index.BTree] @@ -2231,7 +2229,7 @@ public partial struct BTreeU32 "SELECT * FROM users WHERE identity = :sender" ); - [SpacetimeDB.Table(Name = "users", Public = true)] + [SpacetimeDB.Table(Accessor = "users", Public = true)] public partial struct Users { [PrimaryKey] @@ -2245,7 +2243,7 @@ public static void insert_user(ReducerContext ctx, string name, Identity identit ctx.Db.users.Insert(new Users { name = name, identity = identity }); } - [SpacetimeDB.Table(Name = "indexed_simple_enum", Public = true)] + [SpacetimeDB.Table(Accessor = "indexed_simple_enum", Public = true)] public partial struct IndexedSimpleEnum { [SpacetimeDB.Index.BTree] diff --git a/sdks/csharp/examples~/regression-tests/republishing/server-initial/Lib.cs b/sdks/csharp/examples~/regression-tests/republishing/server-initial/Lib.cs index 3604311bf26..d799e1f3e5e 100644 --- a/sdks/csharp/examples~/regression-tests/republishing/server-initial/Lib.cs +++ b/sdks/csharp/examples~/regression-tests/republishing/server-initial/Lib.cs @@ -2,7 +2,7 @@ public static partial class Module { - [SpacetimeDB.Table(Name = "ExampleData", Public = true)] + [SpacetimeDB.Table(Accessor = "ExampleData", Public = true)] public partial struct ExampleData { [SpacetimeDB.PrimaryKey] diff --git a/sdks/csharp/examples~/regression-tests/republishing/server-republish/Lib.cs b/sdks/csharp/examples~/regression-tests/republishing/server-republish/Lib.cs index b34557a7a08..24fd335a357 100644 --- a/sdks/csharp/examples~/regression-tests/republishing/server-republish/Lib.cs +++ b/sdks/csharp/examples~/regression-tests/republishing/server-republish/Lib.cs @@ -2,7 +2,7 @@ public static partial class Module { - [SpacetimeDB.Table(Name = "ExampleData", Public = true)] + [SpacetimeDB.Table(Accessor = "ExampleData", Public = true)] public partial struct ExampleData { [SpacetimeDB.PrimaryKey] diff --git a/sdks/csharp/examples~/regression-tests/server/Lib.cs b/sdks/csharp/examples~/regression-tests/server/Lib.cs index 47c62dc4b87..4df3fa8b458 100644 --- a/sdks/csharp/examples~/regression-tests/server/Lib.cs +++ b/sdks/csharp/examples~/regression-tests/server/Lib.cs @@ -36,13 +36,13 @@ public partial struct DbVector2 public static partial class Module { - [SpacetimeDB.Table(Name = "my_table", Public = true)] + [SpacetimeDB.Table(Accessor = "my_table", Public = true)] public partial struct MyTable { public ReturnStruct Field; } - [SpacetimeDB.Table(Name = "where_test", Public = true)] + [SpacetimeDB.Table(Accessor = "where_test", Public = true)] public partial struct WhereTest { [SpacetimeDB.PrimaryKey] @@ -54,7 +54,7 @@ public partial struct WhereTest public string Name; } - [SpacetimeDB.Table(Name = "example_data", Public = true)] + [SpacetimeDB.Table(Accessor = "example_data", Public = true)] public partial struct ExampleData { [SpacetimeDB.PrimaryKey] @@ -64,13 +64,13 @@ public partial struct ExampleData public uint Indexed; } - [SpacetimeDB.Table(Name = "my_log", Public = true)] + [SpacetimeDB.Table(Accessor = "my_log", Public = true)] public partial struct MyLog { public Result msg; } - [SpacetimeDB.Table(Name = "player", Public = true)] + [SpacetimeDB.Table(Accessor = "player", Public = true)] public partial struct Player { [SpacetimeDB.PrimaryKey] @@ -83,7 +83,7 @@ public partial struct Player public string Name; } - [SpacetimeDB.Table(Name = "account", Public = true)] + [SpacetimeDB.Table(Accessor = "account", Public = true)] public partial class Account { [SpacetimeDB.PrimaryKey] @@ -96,7 +96,7 @@ public partial class Account public string Name = ""; } - [SpacetimeDB.Table(Name = "player_level", Public = true)] + [SpacetimeDB.Table(Accessor = "player_level", Public = true)] public partial struct PlayerLevel { [SpacetimeDB.Unique] @@ -115,7 +115,7 @@ public partial struct PlayerAndLevel public ulong Level; } - [SpacetimeDB.Table(Name = "user", Public = true)] + [SpacetimeDB.Table(Accessor = "user", Public = true)] public partial struct User { [SpacetimeDB.PrimaryKey] @@ -131,8 +131,8 @@ public partial struct User public byte Age; } - [SpacetimeDB.Table(Name = "score", Public = true)] - [SpacetimeDB.Index.BTree(Name = "by_player_and_level", Columns = new[] { "PlayerId", "Level" })] + [SpacetimeDB.Table(Accessor = "score", Public = true)] + [SpacetimeDB.Index.BTree(Accessor = "by_player_and_level", Columns = new[] { "PlayerId", "Level" })] public partial struct Score { public uint PlayerId; @@ -140,7 +140,7 @@ public partial struct Score public long Points; } - [SpacetimeDB.Table(Name = "nullable_vec", Public = true)] + [SpacetimeDB.Table(Accessor = "nullable_vec", Public = true)] public partial struct NullableVec { [SpacetimeDB.PrimaryKey] @@ -149,7 +149,7 @@ public partial struct NullableVec public DbVector2? Pos; } - [SpacetimeDB.Table(Name = "null_string_nonnullable", Public = true)] + [SpacetimeDB.Table(Accessor = "null_string_nonnullable", Public = true)] public partial struct NullStringNonNullable { [SpacetimeDB.PrimaryKey] @@ -159,7 +159,7 @@ public partial struct NullStringNonNullable public string Name; } - [SpacetimeDB.Table(Name = "null_string_nullable", Public = true)] + [SpacetimeDB.Table(Accessor = "null_string_nullable", Public = true)] public partial struct NullStringNullable { [SpacetimeDB.PrimaryKey] @@ -170,26 +170,26 @@ public partial struct NullStringNullable } // At-most-one row: return T? - [SpacetimeDB.View(Name = "my_player", Public = true)] + [SpacetimeDB.View(Accessor = "my_player", Public = true)] public static Player? MyPlayer(ViewContext ctx) { return ctx.Db.player.Identity.Find(ctx.Sender); } - [SpacetimeDB.View(Name = "my_account", Public = true)] + [SpacetimeDB.View(Accessor = "my_account", Public = true)] public static Account? MyAccount(ViewContext ctx) { return ctx.Db.account.Identity.Find(ctx.Sender) as Account; } - [SpacetimeDB.View(Name = "my_account_missing", Public = true)] + [SpacetimeDB.View(Accessor = "my_account_missing", Public = true)] public static Account? MyAccountMissing(ViewContext ctx) { return null; } // Multiple rows: return a list - [SpacetimeDB.View(Name = "players_at_level_one", Public = true)] + [SpacetimeDB.View(Accessor = "players_at_level_one", Public = true)] public static List PlayersAtLevelOne(AnonymousViewContext ctx) { var rows = new List(); @@ -210,7 +210,7 @@ public static List PlayersAtLevelOne(AnonymousViewContext ctx) return rows; } - [SpacetimeDB.View(Name = "Admins", Public = true)] + [SpacetimeDB.View(Accessor = "Admins", Public = true)] public static List Admins(AnonymousViewContext ctx) { var rows = new List(); @@ -221,7 +221,7 @@ public static List Admins(AnonymousViewContext ctx) return rows; } - [SpacetimeDB.View(Name = "users_named_alice", Public = true)] + [SpacetimeDB.View(Accessor = "users_named_alice", Public = true)] public static List UsersNamedAlice(AnonymousViewContext ctx) { var rows = new List(); @@ -232,7 +232,7 @@ public static List UsersNamedAlice(AnonymousViewContext ctx) return rows; } - [SpacetimeDB.View(Name = "users_age_18_65", Public = true)] + [SpacetimeDB.View(Accessor = "users_age_18_65", Public = true)] public static List UsersAge1865(AnonymousViewContext ctx) { var rows = new List(); @@ -243,7 +243,7 @@ public static List UsersAge1865(AnonymousViewContext ctx) return rows; } - [SpacetimeDB.View(Name = "users_age_18_plus", Public = true)] + [SpacetimeDB.View(Accessor = "users_age_18_plus", Public = true)] public static List UsersAge18Plus(AnonymousViewContext ctx) { var rows = new List(); @@ -254,7 +254,7 @@ public static List UsersAge18Plus(AnonymousViewContext ctx) return rows; } - [SpacetimeDB.View(Name = "users_age_under_18", Public = true)] + [SpacetimeDB.View(Accessor = "users_age_under_18", Public = true)] public static List UsersAgeUnder18(AnonymousViewContext ctx) { var rows = new List(); @@ -265,7 +265,7 @@ public static List UsersAgeUnder18(AnonymousViewContext ctx) return rows; } - [SpacetimeDB.View(Name = "scores_player_123", Public = true)] + [SpacetimeDB.View(Accessor = "scores_player_123", Public = true)] public static List ScoresPlayer123(AnonymousViewContext ctx) { var rows = new List(); @@ -276,7 +276,7 @@ public static List ScoresPlayer123(AnonymousViewContext ctx) return rows; } - [SpacetimeDB.View(Name = "scores_player_123_range", Public = true)] + [SpacetimeDB.View(Accessor = "scores_player_123_range", Public = true)] public static List ScoresPlayer123Range(AnonymousViewContext ctx) { var rows = new List(); @@ -289,7 +289,7 @@ public static List ScoresPlayer123Range(AnonymousViewContext ctx) return rows; } - [SpacetimeDB.View(Name = "scores_player_123_level5", Public = true)] + [SpacetimeDB.View(Accessor = "scores_player_123_level5", Public = true)] public static List ScoresPlayer123Level5(AnonymousViewContext ctx) { var rows = new List(); @@ -300,25 +300,25 @@ public static List ScoresPlayer123Level5(AnonymousViewContext ctx) return rows; } - [SpacetimeDB.View(Name = "where_test_view", Public = true)] + [SpacetimeDB.View(Accessor = "where_test_view", Public = true)] public static WhereTest? WhereTestView(ViewContext ctx) { return ctx.Db.where_test.Id.Find(2); } - [SpacetimeDB.View(Name = "where_test_query", Public = true)] + [SpacetimeDB.View(Accessor = "where_test_query", Public = true)] public static Query WhereTestQuery(ViewContext ctx) { return ctx.From.where_test().Where(cols => cols.Id.Eq(SqlLit.Int(2u))).Build(); } - [SpacetimeDB.View(Name = "find_where_test", Public = true)] + [SpacetimeDB.View(Accessor = "find_where_test", Public = true)] public static WhereTest? FindWhereTest(AnonymousViewContext ctx) { return ctx.Db.where_test.Id.Find(3); } - [SpacetimeDB.View(Name = "nullable_vec_view", Public = true)] + [SpacetimeDB.View(Accessor = "nullable_vec_view", Public = true)] public static List NullableVecView(AnonymousViewContext ctx) { var rows = new List(); @@ -684,7 +684,7 @@ private static void AssertRowCount(ProcedureContext ctx, ulong expected) }); } - [SpacetimeDB.Table(Name = "retry_log", Public = true)] + [SpacetimeDB.Table(Accessor = "retry_log", Public = true)] public partial class RetryLog { [SpacetimeDB.PrimaryKey] @@ -692,7 +692,7 @@ public partial class RetryLog public uint Attempts; } - [SpacetimeDB.Table(Name = "test_event", Public = true, Event = true)] + [SpacetimeDB.Table(Accessor = "test_event", Public = true, Event = true)] public partial struct TestEvent { public string Name; diff --git a/templates/basic-cs/spacetimedb/Lib.cs b/templates/basic-cs/spacetimedb/Lib.cs index 0e24e2496e9..b66524d192f 100644 --- a/templates/basic-cs/spacetimedb/Lib.cs +++ b/templates/basic-cs/spacetimedb/Lib.cs @@ -2,7 +2,7 @@ public static partial class Module { - [SpacetimeDB.Table(Name = "Person", Public = true)] + [SpacetimeDB.Table(Accessor = "Person", Public = true)] public partial struct Person { public string Name; diff --git a/templates/chat-console-cs/spacetimedb/Lib.cs b/templates/chat-console-cs/spacetimedb/Lib.cs index 3d82175859a..1adb4f4da04 100644 --- a/templates/chat-console-cs/spacetimedb/Lib.cs +++ b/templates/chat-console-cs/spacetimedb/Lib.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "User", Public = true)] + [Table(Accessor = "User", Public = true)] public partial class User { [PrimaryKey] @@ -11,7 +11,7 @@ public partial class User public bool Online; } - [Table(Name = "Message", Public = true)] + [Table(Accessor = "Message", Public = true)] public partial class Message { public Identity Sender; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_001_basic_tables/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_001_basic_tables/answers/csharp.cs index 804715fc867..4f6d2287f26 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_001_basic_tables/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_001_basic_tables/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "User")] + [Table(Accessor = "User")] public partial struct User { [PrimaryKey] public int Id; @@ -11,7 +11,7 @@ public partial struct User public bool Active; } - [Table(Name = "Product")] + [Table(Accessor = "Product")] public partial struct Product { [PrimaryKey] public int Id; @@ -20,7 +20,7 @@ public partial struct Product public bool InStock; } - [Table(Name = "Note")] + [Table(Accessor = "Note")] public partial struct Note { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_002_scheduled_table/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_002_scheduled_table/answers/csharp.cs index 1341c3ff827..b3b8b5b4826 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_002_scheduled_table/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_002_scheduled_table/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "TickTimer", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))] + [Table(Accessor = "TickTimer", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))] public partial struct TickTimer { [PrimaryKey, AutoInc] public ulong ScheduledId; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_003_struct_in_table/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_003_struct_in_table/answers/csharp.cs index ea202548977..949c1947499 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_003_struct_in_table/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_003_struct_in_table/answers/csharp.cs @@ -9,7 +9,7 @@ public partial struct Position public int Y; } - [Table(Name = "Entity")] + [Table(Accessor = "Entity")] public partial struct Entity { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_004_insert/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_004_insert/answers/csharp.cs index b6b05bf5c52..613d31e5b2a 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_004_insert/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_004_insert/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "User")] + [Table(Accessor = "User")] public partial struct User { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_005_update/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_005_update/answers/csharp.cs index d7fe82ee912..b0d4d6fdf32 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_005_update/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_005_update/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "User")] + [Table(Accessor = "User")] public partial struct User { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_006_delete/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_006_delete/answers/csharp.cs index 904afe54f3d..569c9a8921a 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_006_delete/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_006_delete/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "User")] + [Table(Accessor = "User")] public partial struct User { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_007_crud/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_007_crud/answers/csharp.cs index f2f84b5133d..f84ed24b33c 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_007_crud/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_007_crud/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "User")] + [Table(Accessor = "User")] public partial struct User { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_008_index_lookup/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_008_index_lookup/answers/csharp.cs index f2f187d245b..bf5ba6d2c1c 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_008_index_lookup/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_008_index_lookup/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "User")] + [Table(Accessor = "User")] public partial struct User { [PrimaryKey] public int Id; @@ -11,7 +11,7 @@ public partial struct User public bool Active; } - [Table(Name = "Result")] + [Table(Accessor = "Result")] public partial struct Result { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_009_init/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_009_init/answers/csharp.cs index 4acdbbb77d1..73567b8e1a8 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_009_init/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_009_init/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "User")] + [Table(Accessor = "User")] public partial struct User { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_010_connect/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_010_connect/answers/csharp.cs index 15cc86d15bf..e2df3f3e68a 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_010_connect/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_010_connect/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "Event")] + [Table(Accessor = "Event")] public partial struct Event { [PrimaryKey, AutoInc] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_011_helper_function/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_011_helper_function/answers/csharp.cs index 761e7374c63..ae040e1ddba 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/basics/t_011_helper_function/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/basics/t_011_helper_function/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "Result")] + [Table(Accessor = "Result")] public partial struct Result { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_012_spacetime_product_type/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_012_spacetime_product_type/answers/csharp.cs index 9dceb086d74..cac0990f05e 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_012_spacetime_product_type/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_012_spacetime_product_type/answers/csharp.cs @@ -9,7 +9,7 @@ public partial struct Score public int Right; } - [Table(Name = "Result", Public = true)] + [Table(Accessor = "Result", Public = true)] public partial struct Result { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_013_spacetime_sum_type/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_013_spacetime_sum_type/answers/csharp.cs index df439818763..da825faf805 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_013_spacetime_sum_type/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_013_spacetime_sum_type/answers/csharp.cs @@ -11,7 +11,7 @@ public partial struct Rectangle { public int Width; public int Height; } [Type] public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {} - [Table(Name = "Result")] + [Table(Accessor = "Result")] public partial struct Result { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_014_elementary_columns/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_014_elementary_columns/answers/csharp.cs index a8703779b47..ac99835ffd2 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_014_elementary_columns/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_014_elementary_columns/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "Primitive")] + [Table(Accessor = "Primitive")] public partial struct Primitive { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_015_product_type_columns/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_015_product_type_columns/answers/csharp.cs index 17c71b5ee15..f48a6aa1ed6 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_015_product_type_columns/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_015_product_type_columns/answers/csharp.cs @@ -16,7 +16,7 @@ public partial struct Position public int Y; } - [Table(Name = "Profile", Public = true)] + [Table(Accessor = "Profile", Public = true)] public partial struct Profile { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_016_sum_type_columns/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_016_sum_type_columns/answers/csharp.cs index 5031d954d31..f6d10046228 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_016_sum_type_columns/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_016_sum_type_columns/answers/csharp.cs @@ -11,7 +11,7 @@ public partial struct Rectangle { public int Width; public int Height; } [Type] public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {} - [Table(Name = "Drawing")] + [Table(Accessor = "Drawing")] public partial struct Drawing { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_017_scheduled_columns/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_017_scheduled_columns/answers/csharp.cs index ab8ea16b548..ca085e518d6 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_017_scheduled_columns/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_017_scheduled_columns/answers/csharp.cs @@ -2,7 +2,7 @@ public static partial class Module { - [Table(Name = "TickTimer", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))] + [Table(Accessor = "TickTimer", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))] public partial struct TickTimer { [PrimaryKey, AutoInc] public ulong ScheduledId; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_018_constraints/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_018_constraints/answers/csharp.cs index 8dc23fe28a5..4bdb78de75a 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_018_constraints/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_018_constraints/answers/csharp.cs @@ -2,8 +2,8 @@ public static partial class Module { - [SpacetimeDB.Table(Name = "Account", Public = true)] - [SpacetimeDB.Index.BTree(Name = "by_name", Columns = [nameof(Name)])] + [SpacetimeDB.Table(Accessor = "Account", Public = true)] + [SpacetimeDB.Index.BTree(Accessor = "by_name", Columns = [nameof(Name)])] public partial struct Account { [SpacetimeDB.PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_019_many_to_many/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_019_many_to_many/answers/csharp.cs index 0841e97a684..13012c1eb2b 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_019_many_to_many/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_019_many_to_many/answers/csharp.cs @@ -2,23 +2,23 @@ public static partial class Module { - [Table(Name = "User")] + [Table(Accessor = "User")] public partial struct User { [PrimaryKey] public int UserId; public string Name; } - [Table(Name = "Group")] + [Table(Accessor = "Group")] public partial struct Group { [PrimaryKey] public int GroupId; public string Title; } - [Table(Name = "Membership")] - [SpacetimeDB.Index.BTree(Name = "by_user", Columns = new[] { nameof(UserId) })] - [SpacetimeDB.Index.BTree(Name = "by_group", Columns = new[] { nameof(GroupId) })] + [Table(Accessor = "Membership")] + [SpacetimeDB.Index.BTree(Accessor = "by_user", Columns = new[] { nameof(UserId) })] + [SpacetimeDB.Index.BTree(Accessor = "by_group", Columns = new[] { nameof(GroupId) })] public partial struct Membership { [PrimaryKey] public int Id; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_020_ecs/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_020_ecs/answers/csharp.cs index 0f5c18e1ea8..cc64eccf5d0 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_020_ecs/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_020_ecs/answers/csharp.cs @@ -2,10 +2,10 @@ public static partial class Module { - [Table(Name = "Entity")] + [Table(Accessor = "Entity")] public partial struct Entity { [PrimaryKey] public int Id; } - [Table(Name = "Position")] + [Table(Accessor = "Position")] public partial struct Position { [PrimaryKey] public int EntityId; @@ -13,7 +13,7 @@ public partial struct Position public int Y; } - [Table(Name = "Velocity")] + [Table(Accessor = "Velocity")] public partial struct Velocity { [PrimaryKey] public int EntityId; @@ -21,7 +21,7 @@ public partial struct Velocity public int VY; } - [Table(Name = "NextPosition")] + [Table(Accessor = "NextPosition")] public partial struct NextPosition { [PrimaryKey] public int EntityId; diff --git a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_021_multi_column_index/answers/csharp.cs b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_021_multi_column_index/answers/csharp.cs index acc88e552e6..53cb9f6c42e 100644 --- a/tools/xtask-llm-benchmark/src/benchmarks/schema/t_021_multi_column_index/answers/csharp.cs +++ b/tools/xtask-llm-benchmark/src/benchmarks/schema/t_021_multi_column_index/answers/csharp.cs @@ -2,8 +2,8 @@ public static partial class Module { - [Table(Name = "Log")] - [SpacetimeDB.Index.BTree(Name = "by_user_day", Columns = new[] { nameof(UserId), nameof(Day) })] + [Table(Accessor = "Log")] + [SpacetimeDB.Index.BTree(Accessor = "by_user_day", Columns = new[] { nameof(UserId), nameof(Day) })] public partial struct Log { [PrimaryKey] public int Id; From 95deb5d06e206341e798a099eaffbdbb8f77c776 Mon Sep 17 00:00:00 2001 From: rekhoff Date: Mon, 16 Feb 2026 10:31:19 -0800 Subject: [PATCH 2/6] Update Lints --- .../Codegen.Tests/fixtures/diag/Lib.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/Lib.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/Lib.cs index 109d0c9e3f1..01d952e83c5 100644 --- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/Lib.cs +++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/Lib.cs @@ -446,20 +446,24 @@ public partial struct TestIndexIssues public int SelfIndexingColumn; } -[SpacetimeDB.Table(Accessor = "TestScheduleWithoutPrimaryKey", +[SpacetimeDB.Table( + Accessor = "TestScheduleWithoutPrimaryKey", Scheduled = "DummyScheduledReducer", ScheduledAt = nameof(ScheduleAtCorrectType) )] -[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongPrimaryKeyType", +[SpacetimeDB.Table( + Accessor = "TestScheduleWithWrongPrimaryKeyType", Scheduled = "DummyScheduledReducer", ScheduledAt = nameof(ScheduleAtCorrectType) )] [SpacetimeDB.Table(Accessor = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] -[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongScheduleAtType", +[SpacetimeDB.Table( + Accessor = "TestScheduleWithWrongScheduleAtType", Scheduled = "DummyScheduledReducer", ScheduledAt = nameof(ScheduleAtWrongType) )] -[SpacetimeDB.Table(Accessor = "TestScheduleWithMissingScheduleAtField", +[SpacetimeDB.Table( + Accessor = "TestScheduleWithMissingScheduleAtField", Scheduled = "DummyScheduledReducer", ScheduledAt = "MissingField" )] From f1c675ff58717c3f4843e1f75984b81c4bbaafb5 Mon Sep 17 00:00:00 2001 From: rekhoff Date: Mon, 16 Feb 2026 11:20:18 -0800 Subject: [PATCH 3/6] Updated doc quickstart doc to use `Accessor` attribute --- docs/docs/00100-intro/00200-quickstarts/00600-c-sharp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/00100-intro/00200-quickstarts/00600-c-sharp.md b/docs/docs/00100-intro/00200-quickstarts/00600-c-sharp.md index 973ede09a65..a3b7ee362ff 100644 --- a/docs/docs/00100-intro/00200-quickstarts/00600-c-sharp.md +++ b/docs/docs/00100-intro/00200-quickstarts/00600-c-sharp.md @@ -78,7 +78,7 @@ using SpacetimeDB; public static partial class Module { - [SpacetimeDB.Table(Name = "Person", Public = true)] + [SpacetimeDB.Table(Accessor = "Person", Public = true)] public partial struct Person { public string Name; From 118e18db0c09256b7736f01daf611b9876f2aee3 Mon Sep 17 00:00:00 2001 From: rekhoff Date: Mon, 16 Feb 2026 12:07:10 -0800 Subject: [PATCH 4/6] Updates to Docs and LLMS to use `Accessor` attr for C# modules --- .../00400-key-architecture.md | 2 +- .../00300-tutorials/00100-chat-app.md | 4 +- .../00300-reducers/00300-reducers.md | 2 +- .../00300-reducers/00400-reducer-context.md | 2 +- .../00200-functions/00400-procedures.md | 6 +- .../00200-functions/00500-views.md | 6 +- docs/docs/00200-core-concepts/00300-tables.md | 12 +- .../00300-tables/00200-column-types.md | 2 +- .../00300-tables/00210-file-storage.md | 8 +- .../00300-tables/00230-auto-increment.md | 4 +- .../00300-tables/00240-constraints.md | 6 +- .../00300-tables/00250-default-values.md | 2 +- .../00300-tables/00300-indexes.md | 6 +- .../00300-tables/00400-access-permissions.md | 10 +- .../00200-reference/00400-sql-reference.md | 6 +- docs/llms/docs-benchmark-analysis.md | 2 +- docs/llms/docs-benchmark-details.json | 46 ++-- docs/llms/llm-comparison-details.json | 222 +++++++++--------- docs/static/ai-rules/spacetimedb-csharp.mdc | 16 +- 19 files changed, 182 insertions(+), 182 deletions(-) diff --git a/docs/docs/00100-intro/00100-getting-started/00400-key-architecture.md b/docs/docs/00100-intro/00100-getting-started/00400-key-architecture.md index aeb48bb6082..d5cc55016bf 100644 --- a/docs/docs/00100-intro/00100-getting-started/00400-key-architecture.md +++ b/docs/docs/00100-intro/00100-getting-started/00400-key-architecture.md @@ -46,7 +46,7 @@ const players = table( ```csharp -[SpacetimeDB.Table(Name = "Player", Public = true)] +[SpacetimeDB.Table(Accessor = "Player", Public = true)] public partial struct Player { [SpacetimeDB.PrimaryKey] diff --git a/docs/docs/00100-intro/00300-tutorials/00100-chat-app.md b/docs/docs/00100-intro/00300-tutorials/00100-chat-app.md index 39ebe504796..a74a8c637f0 100644 --- a/docs/docs/00100-intro/00300-tutorials/00100-chat-app.md +++ b/docs/docs/00100-intro/00300-tutorials/00100-chat-app.md @@ -307,7 +307,7 @@ export default spacetimedb; In `spacetimedb/Lib.cs`, add the definition of the tables to the `Module` class: ```csharp server -[Table(Name = "User", Public = true)] +[Table(Accessor = "User", Public = true)] public partial class User { [PrimaryKey] @@ -316,7 +316,7 @@ public partial class User public bool Online; } -[Table(Name = "Message", Public = true)] +[Table(Accessor = "Message", Public = true)] public partial class Message { public Identity Sender; diff --git a/docs/docs/00200-core-concepts/00200-functions/00300-reducers/00300-reducers.md b/docs/docs/00200-core-concepts/00200-functions/00300-reducers/00300-reducers.md index 30330e32e5a..a6304c80f93 100644 --- a/docs/docs/00200-core-concepts/00200-functions/00300-reducers/00300-reducers.md +++ b/docs/docs/00200-core-concepts/00200-functions/00300-reducers/00300-reducers.md @@ -585,7 +585,7 @@ using SpacetimeDB; public partial class Module { - [SpacetimeDB.Table(Name = "FetchSchedule", Scheduled = "FetchExternalData", ScheduledAt = "ScheduledAt")] + [SpacetimeDB.Table(Accessor = "FetchSchedule", Scheduled = "FetchExternalData", ScheduledAt = "ScheduledAt")] public partial struct FetchSchedule { [SpacetimeDB.PrimaryKey] diff --git a/docs/docs/00200-core-concepts/00200-functions/00300-reducers/00400-reducer-context.md b/docs/docs/00200-core-concepts/00200-functions/00300-reducers/00400-reducer-context.md index b7b1b0306f7..59fb75347f2 100644 --- a/docs/docs/00200-core-concepts/00200-functions/00300-reducers/00400-reducer-context.md +++ b/docs/docs/00200-core-concepts/00200-functions/00300-reducers/00400-reducer-context.md @@ -301,7 +301,7 @@ using SpacetimeDB; public static partial class Module { - [SpacetimeDB.Table(Name = "ScheduledTask", Scheduled = nameof(SendReminder))] + [SpacetimeDB.Table(Accessor = "ScheduledTask", Scheduled = nameof(SendReminder))] public partial struct ScheduledTask { [SpacetimeDB.PrimaryKey] diff --git a/docs/docs/00200-core-concepts/00200-functions/00400-procedures.md b/docs/docs/00200-core-concepts/00200-functions/00400-procedures.md index a89b96918fa..0edf0c3a87c 100644 --- a/docs/docs/00200-core-concepts/00200-functions/00400-procedures.md +++ b/docs/docs/00200-core-concepts/00200-functions/00400-procedures.md @@ -181,7 +181,7 @@ using SpacetimeDB; public static partial class Module { - [SpacetimeDB.Table(Name = "MyTable")] + [SpacetimeDB.Table(Accessor = "MyTable")] public partial struct MyTable { public uint A; @@ -471,7 +471,7 @@ using SpacetimeDB; public static partial class Module { - [SpacetimeDB.Table(Name = "Player")] + [SpacetimeDB.Table(Accessor = "Player")] public partial struct Player { public Identity Id; @@ -1256,7 +1256,7 @@ using System.Text.Json; public static partial class Module { - [SpacetimeDB.Table(Name = "AiMessage", Public = true)] + [SpacetimeDB.Table(Accessor = "AiMessage", Public = true)] public partial struct AiMessage { public Identity User; diff --git a/docs/docs/00200-core-concepts/00200-functions/00500-views.md b/docs/docs/00200-core-concepts/00200-functions/00500-views.md index 3b10df6d267..58ff7bd3cd9 100644 --- a/docs/docs/00200-core-concepts/00200-functions/00500-views.md +++ b/docs/docs/00200-core-concepts/00200-functions/00500-views.md @@ -405,7 +405,7 @@ export const high_scorers = spacetimedb.anonymousView( ```csharp -[SpacetimeDB.Table(Name = "Player", Public = true)] +[SpacetimeDB.Table(Accessor = "Player", Public = true)] public partial struct Player { [SpacetimeDB.PrimaryKey] @@ -536,7 +536,7 @@ using SpacetimeDB; public partial class Module { - [SpacetimeDB.Table(Name = "Entity", Public = true)] + [SpacetimeDB.Table(Accessor = "Entity", Public = true)] public partial struct Entity { [SpacetimeDB.PrimaryKey] @@ -552,7 +552,7 @@ public partial class Module } // Track which chunks each player is subscribed to - [SpacetimeDB.Table(Name = "PlayerChunk", Public = true)] + [SpacetimeDB.Table(Accessor = "PlayerChunk", Public = true)] public partial struct PlayerChunk { [SpacetimeDB.PrimaryKey] diff --git a/docs/docs/00200-core-concepts/00300-tables.md b/docs/docs/00200-core-concepts/00300-tables.md index de48fd72126..fd738b11e5c 100644 --- a/docs/docs/00200-core-concepts/00300-tables.md +++ b/docs/docs/00200-core-concepts/00300-tables.md @@ -125,7 +125,7 @@ The first argument defines table options, and the second defines columns. Use the `[SpacetimeDB.Table]` attribute on a `partial struct` or `partial class`: ```csharp -[SpacetimeDB.Table(Name = "Person", Public = true)] +[SpacetimeDB.Table(Accessor = "Person", Public = true)] public partial struct Person { [SpacetimeDB.PrimaryKey] @@ -220,7 +220,7 @@ The accessor name **exactly matches** the `Name` attribute value: ```csharp // Table definition -[SpacetimeDB.Table(Name = "Player", Public = true)] +[SpacetimeDB.Table(Accessor = "Player", Public = true)] public partial struct Player { /* columns */ } // Accessor matches Name exactly @@ -315,10 +315,10 @@ const privateTable = table({ name: 'secret', public: false }, { /* ... */ }); ```csharp -[SpacetimeDB.Table(Name = "User", Public = true)] +[SpacetimeDB.Table(Accessor = "User", Public = true)] public partial struct User { /* ... */ } -[SpacetimeDB.Table(Name = "Secret", Public = false)] +[SpacetimeDB.Table(Accessor = "Secret", Public = false)] public partial struct Secret { /* ... */ } ``` @@ -389,8 +389,8 @@ const LoggedOutPlayer = table({ name: 'LoggedOutPlayer' }, playerColumns); Apply multiple `[Table]` attributes to the same struct: ```csharp -[SpacetimeDB.Table(Name = "Player", Public = true)] -[SpacetimeDB.Table(Name = "LoggedOutPlayer")] +[SpacetimeDB.Table(Accessor = "Player", Public = true)] +[SpacetimeDB.Table(Accessor = "LoggedOutPlayer")] public partial struct Player { [PrimaryKey] diff --git a/docs/docs/00200-core-concepts/00300-tables/00200-column-types.md b/docs/docs/00200-core-concepts/00300-tables/00200-column-types.md index 07204fbfeab..a396e149fa4 100644 --- a/docs/docs/00200-core-concepts/00300-tables/00200-column-types.md +++ b/docs/docs/00200-core-concepts/00300-tables/00200-column-types.md @@ -234,7 +234,7 @@ public static partial class Module string Suspended )> { } - [SpacetimeDB.Table(Name = "Player", Public = true)] + [SpacetimeDB.Table(Accessor = "Player", Public = true)] public partial struct Player { // Primitive types diff --git a/docs/docs/00200-core-concepts/00300-tables/00210-file-storage.md b/docs/docs/00200-core-concepts/00300-tables/00210-file-storage.md index 81395d6b4dc..49390a463dc 100644 --- a/docs/docs/00200-core-concepts/00300-tables/00210-file-storage.md +++ b/docs/docs/00200-core-concepts/00300-tables/00210-file-storage.md @@ -58,7 +58,7 @@ using SpacetimeDB; public static partial class Module { - [SpacetimeDB.Table(Name = "UserAvatar", Public = true)] + [SpacetimeDB.Table(Accessor = "UserAvatar", Public = true)] public partial struct UserAvatar { [SpacetimeDB.PrimaryKey] @@ -227,7 +227,7 @@ using SpacetimeDB; public static partial class Module { - [SpacetimeDB.Table(Name = "Document", Public = true)] + [SpacetimeDB.Table(Accessor = "Document", Public = true)] public partial struct Document { [SpacetimeDB.PrimaryKey] @@ -445,7 +445,7 @@ using SpacetimeDB; public static partial class Module { - [SpacetimeDB.Table(Name = "Document", Public = true)] + [SpacetimeDB.Table(Accessor = "Document", Public = true)] public partial struct Document { [SpacetimeDB.PrimaryKey] @@ -764,7 +764,7 @@ using SpacetimeDB; public partial class Module { - [SpacetimeDB.Table(Name = "Image", Public = true)] + [SpacetimeDB.Table(Accessor = "Image", Public = true)] public partial struct Image { [SpacetimeDB.PrimaryKey] diff --git a/docs/docs/00200-core-concepts/00300-tables/00230-auto-increment.md b/docs/docs/00200-core-concepts/00300-tables/00230-auto-increment.md index 54b6beb4d9d..8821921633d 100644 --- a/docs/docs/00200-core-concepts/00300-tables/00230-auto-increment.md +++ b/docs/docs/00200-core-concepts/00300-tables/00230-auto-increment.md @@ -42,7 +42,7 @@ Auto-increment columns must be integer types: `t.i8()`, `t.u8()`, `t.i16()`, `t. ```csharp -[SpacetimeDB.Table(Name = "Post", Public = true)] +[SpacetimeDB.Table(Accessor = "Post", Public = true)] public partial struct Post { [SpacetimeDB.PrimaryKey] @@ -195,7 +195,7 @@ export const insert_user = spacetimedb.reducer({ name: t.string() }, (ctx, { nam ```csharp public partial class Module { - [SpacetimeDB.Table(Name = "user", Public = true)] + [SpacetimeDB.Table(Accessor = "user", Public = true)] public partial struct User { [SpacetimeDB.AutoInc] diff --git a/docs/docs/00200-core-concepts/00300-tables/00240-constraints.md b/docs/docs/00200-core-concepts/00300-tables/00240-constraints.md index 84145e145de..2f80d0e5cc2 100644 --- a/docs/docs/00200-core-concepts/00300-tables/00240-constraints.md +++ b/docs/docs/00200-core-concepts/00300-tables/00240-constraints.md @@ -35,7 +35,7 @@ Use the `.primaryKey()` method on a column builder to mark it as the primary key ```csharp -[SpacetimeDB.Table(Name = "User", Public = true)] +[SpacetimeDB.Table(Accessor = "User", Public = true)] public partial struct User { [SpacetimeDB.PrimaryKey] @@ -118,7 +118,7 @@ const inventory = table( ```csharp -[SpacetimeDB.Table(Name = "Inventory", Public = true)] +[SpacetimeDB.Table(Accessor = "Inventory", Public = true)] [SpacetimeDB.Index.BTree(Name = "by_user_item", Columns = new[] { nameof(UserId), nameof(ItemId) })] public partial struct Inventory { @@ -304,7 +304,7 @@ Use the `.unique()` method on a column builder. ```csharp -[SpacetimeDB.Table(Name = "User", Public = true)] +[SpacetimeDB.Table(Accessor = "User", Public = true)] public partial struct User { [SpacetimeDB.PrimaryKey] diff --git a/docs/docs/00200-core-concepts/00300-tables/00250-default-values.md b/docs/docs/00200-core-concepts/00300-tables/00250-default-values.md index 845b7837af6..ed41465719c 100644 --- a/docs/docs/00200-core-concepts/00300-tables/00250-default-values.md +++ b/docs/docs/00200-core-concepts/00300-tables/00250-default-values.md @@ -38,7 +38,7 @@ The `.default(value)` method can be chained on any column type builder. The valu ```csharp -[SpacetimeDB.Table(Name = "Player", Public = true)] +[SpacetimeDB.Table(Accessor = "Player", Public = true)] public partial struct Player { [SpacetimeDB.PrimaryKey] diff --git a/docs/docs/00200-core-concepts/00300-tables/00300-indexes.md b/docs/docs/00200-core-concepts/00300-tables/00300-indexes.md index f1dc2270e5a..34c86eef59c 100644 --- a/docs/docs/00200-core-concepts/00300-tables/00300-indexes.md +++ b/docs/docs/00200-core-concepts/00300-tables/00300-indexes.md @@ -117,7 +117,7 @@ const user = table( ```csharp -[SpacetimeDB.Table(Name = "User", Public = true)] +[SpacetimeDB.Table(Accessor = "User", Public = true)] public partial struct User { [SpacetimeDB.PrimaryKey] @@ -195,7 +195,7 @@ const user = table( ```csharp -[SpacetimeDB.Table(Name = "User", Public = true)] +[SpacetimeDB.Table(Accessor = "User", Public = true)] [SpacetimeDB.Index.BTree(Name = "idx_age", Columns = new[] { "Age" })] public partial struct User { @@ -264,7 +264,7 @@ const score = table( ```csharp -[SpacetimeDB.Table(Name = "Score", Public = true)] +[SpacetimeDB.Table(Accessor = "Score", Public = true)] [SpacetimeDB.Index.BTree(Name = "by_player_and_level", Columns = new[] { "PlayerId", "Level" })] public partial struct Score { diff --git a/docs/docs/00200-core-concepts/00300-tables/00400-access-permissions.md b/docs/docs/00200-core-concepts/00300-tables/00400-access-permissions.md index 92a0efbc3df..9df274cefda 100644 --- a/docs/docs/00200-core-concepts/00300-tables/00400-access-permissions.md +++ b/docs/docs/00200-core-concepts/00300-tables/00400-access-permissions.md @@ -44,7 +44,7 @@ const player = table( ```csharp // Private table (default) - only accessible from server-side code -[SpacetimeDB.Table(Name = "InternalConfig")] +[SpacetimeDB.Table(Accessor = "InternalConfig")] public partial struct InternalConfig { [SpacetimeDB.PrimaryKey] @@ -53,7 +53,7 @@ public partial struct InternalConfig } // Public table - clients can subscribe and query -[SpacetimeDB.Table(Name = "Player", Public = true)] +[SpacetimeDB.Table(Accessor = "Player", Public = true)] public partial struct Player { [SpacetimeDB.PrimaryKey] @@ -461,7 +461,7 @@ using SpacetimeDB; public partial class Module { // Private table containing all messages - [SpacetimeDB.Table(Name = "Message")] // Private by default + [SpacetimeDB.Table(Accessor = "Message")] // Private by default public partial struct Message { [SpacetimeDB.PrimaryKey] @@ -613,7 +613,7 @@ using SpacetimeDB; public partial class Module { // Private table with sensitive data - [SpacetimeDB.Table(Name = "UserAccount")] // Private by default + [SpacetimeDB.Table(Accessor = "UserAccount")] // Private by default public partial struct UserAccount { [SpacetimeDB.PrimaryKey] @@ -810,7 +810,7 @@ using SpacetimeDB; public partial class Module { // Private table with all employee data - [SpacetimeDB.Table(Name = "Employee")] + [SpacetimeDB.Table(Accessor = "Employee")] public partial struct Employee { [SpacetimeDB.PrimaryKey] diff --git a/docs/docs/00300-resources/00200-reference/00400-sql-reference.md b/docs/docs/00300-resources/00200-reference/00400-sql-reference.md index 5f0173f3482..52389391c46 100644 --- a/docs/docs/00300-resources/00200-reference/00400-sql-reference.md +++ b/docs/docs/00300-resources/00200-reference/00400-sql-reference.md @@ -545,7 +545,7 @@ In order to conform with the best practices for optimizing performance and scala ```cs -[SpacetimeDB.Table(Name = "Inventory")] +[SpacetimeDB.Table(Accessor = "Inventory")] [SpacetimeDB.Index(Name = "product_name", BTree = ["name"])] public partial struct Inventory { @@ -555,7 +555,7 @@ public partial struct Inventory .. } -[SpacetimeDB.Table(Name = "Customers")] +[SpacetimeDB.Table(Accessor = "Customers")] public partial struct Customers { [SpacetimeDB.PrimaryKey] @@ -565,7 +565,7 @@ public partial struct Customers .. } -[SpacetimeDB.Table(Name = "Orders")] +[SpacetimeDB.Table(Accessor = "Orders")] public partial struct Orders { [SpacetimeDB.PrimaryKey] diff --git a/docs/llms/docs-benchmark-analysis.md b/docs/llms/docs-benchmark-analysis.md index da3333640c5..d7fb557cafc 100644 --- a/docs/llms/docs-benchmark-analysis.md +++ b/docs/llms/docs-benchmark-analysis.md @@ -170,7 +170,7 @@ Generated from: `/__w/SpacetimeDB/SpacetimeDB/tools/xtask-llm-benchmark/../../do public static partial class Module { - [SpacetimeDB.Table(Name = "Primitive", Public = true)] + [SpacetimeDB.Table(Accessor = "Primitive", Public = true)] public partial struct Primitive { [SpacetimeDB.PrimaryKey] diff --git a/docs/llms/docs-benchmark-details.json b/docs/llms/docs-benchmark-details.json index 5d08c34e832..9d87238e2f3 100644 --- a/docs/llms/docs-benchmark-details.json +++ b/docs/llms/docs-benchmark-details.json @@ -2336,7 +2336,7 @@ "model_name": "GPT-5", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"Product\")]\n public partial struct Product\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Name = \"Note\")]\n public partial struct Note\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"Product\")]\n public partial struct Product\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Accessor = \"Note\")]\n public partial struct Note\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-001-basic-tables-golden", @@ -2370,7 +2370,7 @@ "model_name": "GPT-5", "total_tests": 1, "passed_tests": 1, - "llm_output": "using System;\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n foreach (var row in ctx.Db.TickTimer.Iter())\n {\n ctx.Db.TickTimer.ScheduledId.Delete(row.ScheduledId);\n }\n\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(TimeSpan.FromMilliseconds(50))\n });\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer _timer)\n {\n // Tick scheduled reducer. Intentionally left blank.\n }\n}", + "llm_output": "using System;\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n foreach (var row in ctx.Db.TickTimer.Iter())\n {\n ctx.Db.TickTimer.ScheduledId.Delete(row.ScheduledId);\n }\n\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(TimeSpan.FromMilliseconds(50))\n });\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer _timer)\n {\n // Tick scheduled reducer. Intentionally left blank.\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-002-scheduled-table-golden", @@ -2404,7 +2404,7 @@ "model_name": "GPT-5", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"Entity\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"Entity\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-003-struct-in-table-golden", @@ -2438,7 +2438,7 @@ "model_name": "GPT-5", "total_tests": 2, "passed_tests": 2, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Insert(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Insert(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active\n });\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-004-insert-golden", @@ -2491,7 +2491,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.User.Id.Find(id) ?? throw new System.Exception(\"User not found\");\n user.Name = name;\n user.Age = age;\n user.Active = active;\n user.Id = id;\n ctx.Db.User.Id.Update(user);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.User.Id.Find(id) ?? throw new System.Exception(\"User not found\");\n user.Name = name;\n user.Age = age;\n user.Active = active;\n user.Id = id;\n ctx.Db.User.Id.Update(user);\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-005-update-golden", @@ -2551,7 +2551,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.User.Id.Delete(id);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.User.Id.Delete(id);\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-006-delete-golden", @@ -2601,7 +2601,7 @@ "model_name": "GPT-5", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n\n var found = ctx.Db.User.Id.Find(1);\n if (found is User user)\n {\n user.Name = \"Alice2\";\n user.Age = 31;\n user.Active = false;\n ctx.Db.User.Id.Update(user);\n }\n\n ctx.Db.User.Id.Delete(2);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n\n var found = ctx.Db.User.Id.Find(1);\n if (found is User user)\n {\n user.Name = \"Alice2\";\n user.Age = 31;\n user.Active = false;\n ctx.Db.User.Id.Update(user);\n }\n\n ctx.Db.User.Id.Delete(2);\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-007-crud-golden", @@ -2667,7 +2667,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\")]\n public partial class User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"Result\")]\n public partial class Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var user = ctx.Db.User.Id.Find(id);\n if (user != null)\n {\n ctx.Db.Result.Insert(new Result { Id = user.Id, Name = user.Name });\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial class User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"Result\")]\n public partial class Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var user = ctx.Db.User.Id.Find(id);\n if (user != null)\n {\n ctx.Db.Result.Insert(new Result { Id = user.Id, Name = user.Name });\n }\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-008-index-lookup-golden", @@ -2724,7 +2724,7 @@ "model_name": "GPT-5", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-009-init-golden", @@ -2785,7 +2785,7 @@ "model_name": "GPT-5", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Event\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Id = 0, Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Id = 0, Kind = \"disconnected\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Event\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Id = 0, Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Id = 0, Kind = \"disconnected\" });\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-010-connect-golden", @@ -2819,7 +2819,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Result\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n public static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Sum = Add(a, b),\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n public static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Sum = Add(a, b),\n });\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-011-helper-function-golden", @@ -2880,7 +2880,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Name = \"Result\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = new Score { Left = left, Right = right }\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Accessor = \"Result\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = new Score { Left = left, Right = right }\n });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-012-spacetime-product-type-golden", @@ -2941,7 +2941,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"Result\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = new Shape.Circle(new Circle { Radius = radius })\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = new Shape.Circle(new Circle { Radius = radius })\n });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-013-spacetime-sum-type-golden", @@ -3001,7 +3001,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Primitive\", Public = true)]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Primitive.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000L,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Primitive\", Public = true)]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Primitive.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000L,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-014-elementary-columns-golden", @@ -3051,7 +3051,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"Profile\", Public = true)]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n if (ctx.Db.Profile.Id.Find(1) == null)\n {\n ctx.Db.Profile.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 },\n });\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"Profile\", Public = true)]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n if (ctx.Db.Profile.Id.Find(1) == null)\n {\n ctx.Db.Profile.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 },\n });\n }\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-015-product-type-columns-golden", @@ -3108,7 +3108,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"Drawing\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"Drawing\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-016-sum-type-columns-golden", @@ -3158,7 +3158,7 @@ "model_name": "GPT-5", "total_tests": 2, "passed_tests": 1, - "llm_output": "using System;\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer _timer)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(TimeSpan.FromMilliseconds(50))\n });\n }\n}", + "llm_output": "using System;\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer _timer)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(TimeSpan.FromMilliseconds(50))\n });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-017-scheduled-columns-golden", @@ -3200,7 +3200,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Account\", Public = true)]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n\n [SpacetimeDB.Unique]\n public string Email;\n\n [SpacetimeDB.Index.BTree(Name = \"by_name\")]\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Account.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.Account.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Account\", Public = true)]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n\n [SpacetimeDB.Unique]\n public string Email;\n\n [SpacetimeDB.Index.BTree(Name = \"by_name\")]\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Account.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.Account.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-018-constraints-golden", @@ -3257,7 +3257,7 @@ "model_name": "GPT-5", "total_tests": 5, "passed_tests": 5, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Name = \"Group\")]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Name = \"Membership\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = new[] { \"UserId\" })]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = new[] { \"GroupId\" })]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n foreach (var m in ctx.Db.Membership.Iter())\n {\n ctx.Db.Membership.Id.Delete(m.Id);\n }\n\n foreach (var g in ctx.Db.Group.Iter())\n {\n ctx.Db.Group.GroupId.Delete(g.GroupId);\n }\n\n foreach (var u in ctx.Db.User.Iter())\n {\n ctx.Db.User.UserId.Delete(u.UserId);\n }\n\n ctx.Db.User.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.User.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.Group.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.Group.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.Membership.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.Membership.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.Membership.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Accessor = \"Group\")]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Accessor = \"Membership\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = new[] { \"UserId\" })]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = new[] { \"GroupId\" })]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n foreach (var m in ctx.Db.Membership.Iter())\n {\n ctx.Db.Membership.Id.Delete(m.Id);\n }\n\n foreach (var g in ctx.Db.Group.Iter())\n {\n ctx.Db.Group.GroupId.Delete(g.GroupId);\n }\n\n foreach (var u in ctx.Db.User.Iter())\n {\n ctx.Db.User.UserId.Delete(u.UserId);\n }\n\n ctx.Db.User.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.User.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.Group.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.Group.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.Membership.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.Membership.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.Membership.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-019-many-to-many-golden", @@ -3327,7 +3327,7 @@ "model_name": "GPT-5", "total_tests": 5, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Entity\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Name = \"Position\")]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"Velocity\")]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Name = \"NextPosition\")]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n // Entities\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\n\n // Positions\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n // Velocities\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.Position.Iter())\n {\n var vel = ctx.Db.Velocity.EntityId.Find(pos.EntityId);\n int vx = 0, vy = 0;\n if (vel != null)\n {\n vx = vel.Value.VX;\n vy = vel.Value.VY;\n }\n\n var next = new NextPosition\n {\n EntityId = pos.EntityId,\n X = pos.X + vx,\n Y = pos.Y + vy\n };\n\n var existing = ctx.Db.NextPosition.EntityId.Find(pos.EntityId);\n if (existing != null)\n {\n ctx.Db.NextPosition.EntityId.Update(next);\n }\n else\n {\n ctx.Db.NextPosition.Insert(next);\n }\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Entity\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Accessor = \"Position\")]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"Velocity\")]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Accessor = \"NextPosition\")]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n // Entities\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\n\n // Positions\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n // Velocities\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.Position.Iter())\n {\n var vel = ctx.Db.Velocity.EntityId.Find(pos.EntityId);\n int vx = 0, vy = 0;\n if (vel != null)\n {\n vx = vel.Value.VX;\n vy = vel.Value.VY;\n }\n\n var next = new NextPosition\n {\n EntityId = pos.EntityId,\n X = pos.X + vx,\n Y = pos.Y + vy\n };\n\n var existing = ctx.Db.NextPosition.EntityId.Find(pos.EntityId);\n if (existing != null)\n {\n ctx.Db.NextPosition.EntityId.Update(next);\n }\n else\n {\n ctx.Db.NextPosition.Insert(next);\n }\n }\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-020-ecs-golden", @@ -3393,7 +3393,7 @@ "model_name": "GPT-5", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Log\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { \"UserId\", \"Day\" })]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Log.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.Log.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.Log.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Log\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { \"UserId\", \"Day\" })]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Log.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.Log.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.Log.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-021-multi-column-index-golden", @@ -3525,7 +3525,7 @@ "syntax": "csharp" }, "schema/t_018_constraints": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"accounts\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey] public int Id;\n [SpacetimeDB.Unique] public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"accounts\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey] public int Id;\n [SpacetimeDB.Unique] public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", "syntax": "csharp" }, "schema/t_019_many_to_many": { @@ -3613,7 +3613,7 @@ "syntax": "csharp" }, "t_018_constraints": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Account\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey] public int Id;\n [SpacetimeDB.Unique] public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Account.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.Account.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Account\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey] public int Id;\n [SpacetimeDB.Unique] public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Account.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.Account.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}\n", "syntax": "csharp" }, "t_019_many_to_many": { diff --git a/docs/llms/llm-comparison-details.json b/docs/llms/llm-comparison-details.json index 560bdb80ca7..347df19e7b3 100644 --- a/docs/llms/llm-comparison-details.json +++ b/docs/llms/llm-comparison-details.json @@ -106,7 +106,7 @@ "model_name": "GPT-5", "total_tests": 1, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n\n public Position(int X, int Y)\n {\n this.X = X;\n this.Y = Y;\n }\n }\n\n [SpacetimeDB.Table(Name = \"entities\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n\n public Position(int X, int Y)\n {\n this.X = X;\n this.Y = Y;\n }\n }\n\n [SpacetimeDB.Table(Accessor = \"entities\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-003-struct-in-table-golden", @@ -135,7 +135,7 @@ "model_name": "GPT-5", "total_tests": 2, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active\n });\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-004-insert-golden", @@ -172,7 +172,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n if (ctx.Db.users.Id.Find(id) is User u)\n {\n u.Id = id;\n u.Name = name;\n u.Age = age;\n u.Active = active;\n ctx.Db.users.Id.Update(u);\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n if (ctx.Db.users.Id.Find(id) is User u)\n {\n u.Id = id;\n u.Name = name;\n u.Age = age;\n u.Active = active;\n ctx.Db.users.Id.Update(u);\n }\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-005-update-golden", @@ -218,7 +218,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.users.Id.Delete(id);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.users.Id.Delete(id);\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-006-delete-golden", @@ -265,7 +265,7 @@ "model_name": "GPT-5", "total_tests": 4, "passed_tests": 1, - "llm_output": "using System;\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n // insert (Id=1, Name=\"Alice\", Age=30, Active=true)\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n\n // insert (Id=2, Name=\"Bob\", Age=22, Active=false)\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n\n // update (Id=1, Name=\"Alice2\", Age=31, Active=false)\n var u1 = ctx.Db.users.Id.Find(1) ?? throw new Exception(\"User with Id=1 not found\");\n u1.Name = \"Alice2\";\n u1.Age = 31;\n u1.Active = false;\n ctx.Db.users.Id.Update(u1);\n\n // delete Id=2\n ctx.Db.users.Id.Delete(2);\n }\n}", + "llm_output": "using System;\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n // insert (Id=1, Name=\"Alice\", Age=30, Active=true)\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n\n // insert (Id=2, Name=\"Bob\", Age=22, Active=false)\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n\n // update (Id=1, Name=\"Alice2\", Age=31, Active=false)\n var u1 = ctx.Db.users.Id.Find(1) ?? throw new Exception(\"User with Id=1 not found\");\n u1.Name = \"Alice2\";\n u1.Age = 31;\n u1.Active = false;\n ctx.Db.users.Id.Update(u1);\n\n // delete Id=2\n ctx.Db.users.Id.Delete(2);\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-007-crud-golden", @@ -320,7 +320,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n if (ctx.Db.users.Id.Find(id) is User user)\n {\n ctx.Db.results.Insert(new Result\n {\n Id = user.Id,\n Name = user.Name\n });\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n if (ctx.Db.users.Id.Find(id) is User user)\n {\n ctx.Db.results.Insert(new Result\n {\n Id = user.Id,\n Name = user.Name\n });\n }\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-008-index-lookup-golden", @@ -366,7 +366,7 @@ "model_name": "GPT-5", "total_tests": 4, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(SpacetimeDB.ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(SpacetimeDB.ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-009-init-golden", @@ -422,7 +422,7 @@ "model_name": "GPT-5", "total_tests": 1, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey, SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"disconnected\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey, SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"disconnected\" });\n }\n}", "category": "basics", "route_api_model": "gpt-5", "golden_db": "basics-t-010-connect-golden", @@ -526,7 +526,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\nusing SpacetimeDB.Types;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial class Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)>\n {\n }\n\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n var shape = new Shape.Circle(new Circle { Radius = radius });\n ctx.Db.results.Insert(new Result { Id = id, Value = shape });\n }\n}", + "llm_output": "using SpacetimeDB;\nusing SpacetimeDB.Types;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial class Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)>\n {\n }\n\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n var shape = new Shape.Circle(new Circle { Radius = radius });\n ctx.Db.results.Insert(new Result { Id = id, Value = shape });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-013-spacetime-sum-type-golden", @@ -555,7 +555,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"primitives\")]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000L,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"primitives\")]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000L,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-014-elementary-columns-golden", @@ -584,7 +584,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"profiles\", Public = true)]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"profiles\", Public = true)]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-015-product-type-columns-golden", @@ -613,7 +613,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\nusing SpacetimeDB.Types;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial class Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)>\n {\n }\n\n [SpacetimeDB.Table(Name = \"drawings\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing\n {\n Id = 1,\n A = Shape.Circle(new Circle { Radius = 10 }),\n B = Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}", + "llm_output": "using SpacetimeDB;\nusing SpacetimeDB.Types;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial class Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)>\n {\n }\n\n [SpacetimeDB.Table(Accessor = \"drawings\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing\n {\n Id = 1,\n A = Shape.Circle(new Circle { Radius = 10 }),\n B = Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-016-sum-type-columns-golden", @@ -642,7 +642,7 @@ "model_name": "GPT-5", "total_tests": 2, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey, SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer(SpacetimeDB.ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(TimeSpan.FromMilliseconds(50))\n });\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer _timer)\n {\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey, SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer(SpacetimeDB.ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(TimeSpan.FromMilliseconds(50))\n });\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer _timer)\n {\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-017-scheduled-columns-golden", @@ -680,7 +680,7 @@ "model_name": "GPT-5", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"accounts\")]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = new[] { \"Name\" })]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Unique]\n public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"accounts\")]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = new[] { \"Name\" })]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Unique]\n public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-018-constraints-golden", @@ -755,7 +755,7 @@ "model_name": "GPT-5", "total_tests": 5, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"entities\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Name = \"positions\", Public = true)]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"velocities\", Public = true)]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Name = \"next_positions\", Public = true)]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n // Entity 1\n ctx.Db.entities.Insert(new Entity\n {\n Id = 1\n });\n ctx.Db.positions.Insert(new Position\n {\n EntityId = 1,\n X = 0,\n Y = 0\n });\n ctx.Db.velocities.Insert(new Velocity\n {\n EntityId = 1,\n VX = 1,\n VY = 0\n });\n\n // Entity 2\n ctx.Db.entities.Insert(new Entity\n {\n Id = 2\n });\n ctx.Db.positions.Insert(new Position\n {\n EntityId = 2,\n X = 10,\n Y = 0\n });\n ctx.Db.velocities.Insert(new Velocity\n {\n EntityId = 2,\n VX = -2,\n VY = 3\n });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.positions.Iter())\n {\n if (ctx.Db.velocities.EntityId.Find(pos.EntityId) is Velocity vel)\n {\n var nx = pos.X + vel.VX;\n var ny = pos.Y + vel.VY;\n\n if (ctx.Db.next_positions.EntityId.Find(pos.EntityId) is NextPosition existing)\n {\n existing.X = nx;\n existing.Y = ny;\n ctx.Db.next_positions.EntityId.Update(existing);\n }\n else\n {\n ctx.Db.next_positions.Insert(new NextPosition\n {\n EntityId = pos.EntityId,\n X = nx,\n Y = ny\n });\n }\n }\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"entities\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Accessor = \"positions\", Public = true)]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"velocities\", Public = true)]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Accessor = \"next_positions\", Public = true)]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n // Entity 1\n ctx.Db.entities.Insert(new Entity\n {\n Id = 1\n });\n ctx.Db.positions.Insert(new Position\n {\n EntityId = 1,\n X = 0,\n Y = 0\n });\n ctx.Db.velocities.Insert(new Velocity\n {\n EntityId = 1,\n VX = 1,\n VY = 0\n });\n\n // Entity 2\n ctx.Db.entities.Insert(new Entity\n {\n Id = 2\n });\n ctx.Db.positions.Insert(new Position\n {\n EntityId = 2,\n X = 10,\n Y = 0\n });\n ctx.Db.velocities.Insert(new Velocity\n {\n EntityId = 2,\n VX = -2,\n VY = 3\n });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.positions.Iter())\n {\n if (ctx.Db.velocities.EntityId.Find(pos.EntityId) is Velocity vel)\n {\n var nx = pos.X + vel.VX;\n var ny = pos.Y + vel.VY;\n\n if (ctx.Db.next_positions.EntityId.Find(pos.EntityId) is NextPosition existing)\n {\n existing.X = nx;\n existing.Y = ny;\n ctx.Db.next_positions.EntityId.Update(existing);\n }\n else\n {\n ctx.Db.next_positions.Insert(new NextPosition\n {\n EntityId = pos.EntityId,\n X = nx,\n Y = ny\n });\n }\n }\n }\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-020-ecs-golden", @@ -784,7 +784,7 @@ "model_name": "GPT-5", "total_tests": 4, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"logs\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { \"UserId\", \"Day\" })]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"logs\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { \"UserId\", \"Day\" })]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", "category": "schema", "route_api_model": "gpt-5", "golden_db": "schema-t-021-multi-column-index-golden", @@ -8150,7 +8150,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct Users\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"products\")]\n public partial struct Products\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Name = \"notes\")]\n public partial struct Notes\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}\n", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct Users\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"products\")]\n public partial struct Products\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Accessor = \"notes\")]\n public partial struct Notes\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}\n", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-001-basic-tables-golden", @@ -8184,7 +8184,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 1, "passed_tests": 1, - "llm_output": "```csharp\nusing SpacetimeDB;\nusing System;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public SpacetimeDB.ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new SpacetimeDB.ScheduleAt.Interval(TimeSpan.FromMicroseconds(50_000)),\n });\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\nusing System;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public SpacetimeDB.ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new SpacetimeDB.ScheduleAt.Interval(TimeSpan.FromMicroseconds(50_000)),\n });\n }\n}\n```", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-002-scheduled-table-golden", @@ -8218,7 +8218,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n\n public Position Pos;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n\n public Position Pos;\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-003-struct-in-table-golden", @@ -8252,7 +8252,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 2, "passed_tests": 2, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active,\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active,\n });\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-004-insert-golden", @@ -8305,7 +8305,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n User user = new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active,\n };\n ctx.Db.users.Id.Update(user);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n User user = new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active,\n };\n ctx.Db.users.Id.Update(user);\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-005-update-golden", @@ -8365,7 +8365,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 3, "passed_tests": 3, - "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.users.Id.Delete(id);\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.users.Id.Delete(id);\n }\n}\n```", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-006-delete-golden", @@ -8415,7 +8415,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.users.Id.Delete(2);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.users.Id.Delete(2);\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-007-crud-golden", @@ -8481,7 +8481,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 3, "passed_tests": 3, - "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user.HasValue)\n {\n var foundUser = user.Value;\n ctx.Db.results.Insert(new Result { Id = foundUser.Id, Name = foundUser.Name });\n }\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user.HasValue)\n {\n var foundUser = user.Value;\n ctx.Db.results.Insert(new Result { Id = foundUser.Id, Name = foundUser.Name });\n }\n }\n}\n```", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-008-index-lookup-golden", @@ -8538,7 +8538,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-009-init-golden", @@ -8599,7 +8599,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"connected\" });\n }\n\n [Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"disconnected\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"connected\" });\n }\n\n [Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"disconnected\" });\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-010-connect-golden", @@ -8633,7 +8633,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 3, "passed_tests": 3, - "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n private static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n int sum = Add(a, b);\n ctx.Db.results.Insert(new Result { Id = id, Sum = sum });\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n private static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n int sum = Add(a, b);\n ctx.Db.results.Insert(new Result { Id = id, Sum = sum });\n }\n}\n```", "category": "basics", "route_api_model": "gemini-2.5-pro", "golden_db": "basics-t-011-helper-function-golden", @@ -8694,7 +8694,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n var newScore = new Score { Left = left, Right = right };\n var newResult = new Result { Id = id, Value = newScore };\n ctx.Db.results.Insert(newResult);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n var newScore = new Score { Left = left, Right = right };\n var newResult = new Result { Id = id, Value = newScore };\n ctx.Db.results.Insert(newResult);\n }\n}", "category": "schema", "route_api_model": "gemini-2.5-pro", "golden_db": "schema-t-012-spacetime-product-type-golden", @@ -8755,7 +8755,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 3, "passed_tests": 3, - "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n var circleValue = new Shape.Circle(new Circle { Radius = radius });\n ctx.Db.results.Insert(new Result { Id = id, Value = circleValue });\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n var circleValue = new Shape.Circle(new Circle { Radius = radius });\n ctx.Db.results.Insert(new Result { Id = id, Value = circleValue });\n }\n}\n```", "category": "schema", "route_api_model": "gemini-2.5-pro", "golden_db": "schema-t-013-spacetime-sum-type-golden", @@ -8815,7 +8815,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"primitives\")]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000L,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\",\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"primitives\")]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000L,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\",\n });\n }\n}", "category": "schema", "route_api_model": "gemini-2.5-pro", "golden_db": "schema-t-014-elementary-columns-golden", @@ -8872,7 +8872,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"profiles\")]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 },\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"profiles\")]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 },\n });\n }\n}", "category": "schema", "route_api_model": "gemini-2.5-pro", "golden_db": "schema-t-015-product-type-columns-golden", @@ -8986,7 +8986,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 2, "passed_tests": 2, - "llm_output": "```csharp\nusing SpacetimeDB;\nusing System;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public SpacetimeDB.ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new SpacetimeDB.ScheduleAt.Interval(new TimeDuration { Microseconds = 50_000 }),\n });\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\nusing System;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public SpacetimeDB.ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new SpacetimeDB.ScheduleAt.Interval(new TimeDuration { Microseconds = 50_000 }),\n });\n }\n}\n```", "category": "schema", "route_api_model": "gemini-2.5-pro", "golden_db": "schema-t-017-scheduled-columns-golden", @@ -9029,7 +9029,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 3, "passed_tests": 3, - "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"accounts\")]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Unique]\n public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"accounts\")]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Unique]\n public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}\n```", "category": "schema", "route_api_model": "gemini-2.5-pro", "golden_db": "schema-t-018-constraints-golden", @@ -9086,7 +9086,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 5, "passed_tests": 5, - "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Name = \"groups\")]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Name = \"memberships\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = [nameof(UserId)])]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = [nameof(GroupId)])]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.users.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.groups.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.groups.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.memberships.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.memberships.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.memberships.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Accessor = \"groups\")]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Accessor = \"memberships\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = [nameof(UserId)])]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = [nameof(GroupId)])]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.users.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.groups.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.groups.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.memberships.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.memberships.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.memberships.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}\n```", "category": "schema", "route_api_model": "gemini-2.5-pro", "golden_db": "schema-t-019-many-to-many-golden", @@ -9156,7 +9156,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 5, "passed_tests": 5, - "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Name = \"positions\")]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"velocities\")]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Name = \"next_positions\")]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.positions.Iter())\n {\n var velOpt = ctx.Db.velocities.EntityId.Find(pos.EntityId);\n if (velOpt.HasValue)\n {\n var vel = velOpt.Value;\n var nextPos = new NextPosition\n {\n EntityId = pos.EntityId,\n X = pos.X + vel.VX,\n Y = pos.Y + vel.VY\n };\n\n if (ctx.Db.next_positions.EntityId.Find(pos.EntityId).HasValue)\n {\n ctx.Db.next_positions.EntityId.Update(nextPos);\n }\n else\n {\n ctx.Db.next_positions.Insert(nextPos);\n }\n }\n }\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Accessor = \"positions\")]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"velocities\")]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Accessor = \"next_positions\")]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.positions.Iter())\n {\n var velOpt = ctx.Db.velocities.EntityId.Find(pos.EntityId);\n if (velOpt.HasValue)\n {\n var vel = velOpt.Value;\n var nextPos = new NextPosition\n {\n EntityId = pos.EntityId,\n X = pos.X + vel.VX,\n Y = pos.Y + vel.VY\n };\n\n if (ctx.Db.next_positions.EntityId.Find(pos.EntityId).HasValue)\n {\n ctx.Db.next_positions.EntityId.Update(nextPos);\n }\n else\n {\n ctx.Db.next_positions.Insert(nextPos);\n }\n }\n }\n }\n}\n```", "category": "schema", "route_api_model": "gemini-2.5-pro", "golden_db": "schema-t-020-ecs-golden", @@ -9226,7 +9226,7 @@ "model_name": "Gemini 2.5 Pro", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"logs\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = [nameof(UserId), nameof(Day)])]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"logs\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = [nameof(UserId), nameof(Day)])]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", "category": "schema", "route_api_model": "gemini-2.5-pro", "golden_db": "schema-t-021-multi-column-index-golden", @@ -9327,7 +9327,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct Users\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"products\", Public = true)]\n public partial struct Products\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Name = \"notes\", Public = true)]\n public partial struct Notes\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct Users\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"products\", Public = true)]\n public partial struct Products\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Accessor = \"notes\", Public = true)]\n public partial struct Notes\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-flash", "golden_db": "basics-t-001-basic-tables-golden", @@ -9361,7 +9361,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\nusing System;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey, SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public SpacetimeDB.ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer)\n {\n // Reducer logic\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0, // Auto-increment will assign a value\n ScheduledAt = new ScheduleAt.Interval(TimeSpan.FromMicroseconds(50_000))\n });\n }\n}", + "llm_output": "using SpacetimeDB;\nusing System;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey, SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public SpacetimeDB.ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer)\n {\n // Reducer logic\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0, // Auto-increment will assign a value\n ScheduledAt = new ScheduleAt.Interval(TimeSpan.FromMicroseconds(50_000))\n });\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-flash", "golden_db": "basics-t-002-scheduled-table-golden", @@ -9395,7 +9395,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"entities\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"entities\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-flash", "golden_db": "basics-t-003-struct-in-table-golden", @@ -9537,7 +9537,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\nusing System;\nusing System.Collections.Generic;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n // Insert (Id=1, Name=\"Alice\", Age=30, Active=true)\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n\n // Insert (Id=2, Name=\"Bob\", Age=22, Active=false)\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n\n // Update (Id=1, Name=\"Alice2\", Age=31, Active=false)\n if (ctx.Db.users.Id.Find(1) is User user1)\n {\n user1.Name = \"Alice2\";\n user1.Age = 31;\n user1.Active = false;\n ctx.Db.users.Id.Update(user1);\n }\n\n // Delete Id=2\n ctx.Db.users.Id.Delete(2);\n }\n}", + "llm_output": "using SpacetimeDB;\nusing System;\nusing System.Collections.Generic;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n // Insert (Id=1, Name=\"Alice\", Age=30, Active=true)\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n\n // Insert (Id=2, Name=\"Bob\", Age=22, Active=false)\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n\n // Update (Id=1, Name=\"Alice2\", Age=31, Active=false)\n if (ctx.Db.users.Id.Find(1) is User user1)\n {\n user1.Name = \"Alice2\";\n user1.Age = 31;\n user1.Active = false;\n ctx.Db.users.Id.Update(user1);\n }\n\n // Delete Id=2\n ctx.Db.users.Id.Delete(2);\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-flash", "golden_db": "basics-t-007-crud-golden", @@ -9660,7 +9660,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 4, "passed_tests": 0, - "llm_output": "[SpacetimeDB.Type]\npublic partial struct User\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct Users { }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", + "llm_output": "[SpacetimeDB.Type]\npublic partial struct User\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct Users { }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-flash", "golden_db": "basics-t-009-init-golden", @@ -9689,7 +9689,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"disconnected\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"disconnected\" });\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-flash", "golden_db": "basics-t-010-connect-golden", @@ -9723,7 +9723,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n private static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n private static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}", "category": "basics", "route_api_model": "gemini-2.5-flash", "golden_db": "basics-t-011-helper-function-golden", @@ -9784,7 +9784,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\nusing System;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Name = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\n }\n}", + "llm_output": "using SpacetimeDB;\nusing System;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Accessor = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\n }\n}", "category": "schema", "route_api_model": "gemini-2.5-flash", "golden_db": "schema-t-012-spacetime-product-type-golden", @@ -9845,7 +9845,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\n }\n}", "category": "schema", "route_api_model": "gemini-2.5-flash", "golden_db": "schema-t-013-spacetime-sum-type-golden", @@ -9905,7 +9905,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 3, "passed_tests": 3, - "llm_output": "using System;\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"primitives\", Public = true)]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive { Id = 1, Count = 2, Total = 3000000000L, Price = 1.5f, Ratio = 2.25, Active = true, Name = \"Alice\" });\n }\n}", + "llm_output": "using System;\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"primitives\", Public = true)]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive { Id = 1, Count = 2, Total = 3000000000L, Price = 1.5f, Ratio = 2.25, Active = true, Name = \"Alice\" });\n }\n}", "category": "schema", "route_api_model": "gemini-2.5-flash", "golden_db": "schema-t-014-elementary-columns-golden", @@ -9991,7 +9991,7 @@ "model_name": "Gemini 2.5 Flash", "total_tests": 3, "passed_tests": 2, - "llm_output": "using SpacetimeDB;\nusing System;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"drawings\", Public = true)]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}", + "llm_output": "using SpacetimeDB;\nusing System;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"drawings\", Public = true)]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}", "category": "schema", "route_api_model": "gemini-2.5-flash", "golden_db": "schema-t-016-sum-type-columns-golden", @@ -10379,7 +10379,7 @@ "model_name": "Claude 4.5 Haiku", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"entities\", Public = true)]\n public partial struct Entity\n {\n [PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"entities\", Public = true)]\n public partial struct Entity\n {\n [PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", "category": "basics", "route_api_model": "claude-haiku-4-5", "golden_db": "basics-t-003-struct-in-table-golden", @@ -11385,7 +11385,7 @@ "model_name": "DeepSeek R1", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct Users\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"products\")]\n public partial struct Products\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Name = \"notes\")]\n public partial struct Notes\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct Users\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"products\")]\n public partial struct Products\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Accessor = \"notes\")]\n public partial struct Notes\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-001-basic-tables-golden", @@ -11419,7 +11419,7 @@ "model_name": "DeepSeek R1", "total_tests": 1, "passed_tests": 1, - "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer)\n {\n // Scheduled reducer logic would go here\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(new TimeDuration { Microseconds = 50_000 })\n });\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer)\n {\n // Scheduled reducer logic would go here\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(new TimeDuration { Microseconds = 50_000 })\n });\n }\n}\n```", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-002-scheduled-table-golden", @@ -11453,7 +11453,7 @@ "model_name": "DeepSeek R1", "total_tests": 1, "passed_tests": 1, - "llm_output": "```csharp\nusing SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Position\n{\n public int X;\n public int Y;\n}\n\n[SpacetimeDB.Table(Name = \"entities\")]\npublic partial struct Entity\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n}\n\npublic static partial class Module\n{\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Position\n{\n public int X;\n public int Y;\n}\n\n[SpacetimeDB.Table(Accessor = \"entities\")]\npublic partial struct Entity\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n}\n\npublic static partial class Module\n{\n}\n```", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-003-struct-in-table-golden", @@ -11487,7 +11487,7 @@ "model_name": "DeepSeek R1", "total_tests": 2, "passed_tests": 2, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-004-insert-golden", @@ -11540,7 +11540,7 @@ "model_name": "DeepSeek R1", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user.HasValue)\n {\n ctx.Db.users.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n else\n {\n throw new System.Exception($\"User with id {id} not found\");\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user.HasValue)\n {\n ctx.Db.users.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n else\n {\n throw new System.Exception($\"User with id {id} not found\");\n }\n }\n}", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-005-update-golden", @@ -11600,7 +11600,7 @@ "model_name": "DeepSeek R1", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n if (ctx.Db.users.Id.Find(id) is User user)\n {\n ctx.Db.users.Id.Delete(id);\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n if (ctx.Db.users.Id.Find(id) is User user)\n {\n ctx.Db.users.Id.Delete(id);\n }\n }\n}", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-006-delete-golden", @@ -11650,7 +11650,7 @@ "model_name": "DeepSeek R1", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.users.Id.Delete(2);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.users.Id.Delete(2);\n }\n}", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-007-crud-golden", @@ -11716,7 +11716,7 @@ "model_name": "DeepSeek R1", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user != null)\n {\n ctx.Db.results.Insert(new Result { Id = user.Id, Name = user.Name });\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user != null)\n {\n ctx.Db.results.Insert(new Result { Id = user.Id, Name = user.Name });\n }\n }\n}", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-008-index-lookup-golden", @@ -11745,7 +11745,7 @@ "model_name": "DeepSeek R1", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-009-init-golden", @@ -11806,7 +11806,7 @@ "model_name": "DeepSeek R1", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"disconnected\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"disconnected\" });\n }\n}", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-010-connect-golden", @@ -11840,7 +11840,7 @@ "model_name": "DeepSeek R1", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n private static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n private static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}", "category": "basics", "route_api_model": "deepseek-reasoner", "golden_db": "basics-t-011-helper-function-golden", @@ -11901,7 +11901,7 @@ "model_name": "DeepSeek R1", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Score\n{\n public int Left;\n public int Right;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result\n {\n Id = id,\n Value = new Score { Left = left, Right = right }\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Score\n{\n public int Left;\n public int Right;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result\n {\n Id = id,\n Value = new Score { Left = left, Right = right }\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-reasoner", "golden_db": "schema-t-012-spacetime-product-type-golden", @@ -11962,7 +11962,7 @@ "model_name": "DeepSeek R1", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Circle\n{\n public int Radius;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Rectangle\n{\n public int Width;\n public int Height;\n}\n\n[SpacetimeDB.Type]\npublic partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result\n {\n Id = id,\n Value = new Shape.Circle(new Circle { Radius = radius })\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Circle\n{\n public int Radius;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Rectangle\n{\n public int Width;\n public int Height;\n}\n\n[SpacetimeDB.Type]\npublic partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result\n {\n Id = id,\n Value = new Shape.Circle(new Circle { Radius = radius })\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-reasoner", "golden_db": "schema-t-013-spacetime-sum-type-golden", @@ -11991,7 +11991,7 @@ "model_name": "DeepSeek R1", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"primitives\")]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"primitives\")]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-reasoner", "golden_db": "schema-t-014-elementary-columns-golden", @@ -12048,7 +12048,7 @@ "model_name": "DeepSeek R1", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Address\n{\n public string Street;\n public int Zip;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Position\n{\n public int X;\n public int Y;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"profiles\")]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Address\n{\n public string Street;\n public int Zip;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Position\n{\n public int X;\n public int Y;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"profiles\")]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-reasoner", "golden_db": "schema-t-015-product-type-columns-golden", @@ -12105,7 +12105,7 @@ "model_name": "DeepSeek R1", "total_tests": 3, "passed_tests": 3, - "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"drawings\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}\n```", + "llm_output": "```csharp\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"drawings\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}\n```", "category": "schema", "route_api_model": "deepseek-reasoner", "golden_db": "schema-t-016-sum-type-columns-golden", @@ -12162,7 +12162,7 @@ "model_name": "DeepSeek R1", "total_tests": 2, "passed_tests": 2, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(new TimeDuration { Microseconds = 50_000 })\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(new TimeDuration { Microseconds = 50_000 })\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-reasoner", "golden_db": "schema-t-017-scheduled-columns-golden", @@ -12205,7 +12205,7 @@ "model_name": "DeepSeek R1", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"accounts\")]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n \n [SpacetimeDB.Unique]\n public string Email;\n \n public string Name;\n \n [SpacetimeDB.Index.BTree(Name = \"by_name\")]\n public string NameIndex => Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"accounts\")]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n \n [SpacetimeDB.Unique]\n public string Email;\n \n public string Name;\n \n [SpacetimeDB.Index.BTree(Name = \"by_name\")]\n public string NameIndex => Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", "category": "schema", "route_api_model": "deepseek-reasoner", "golden_db": "schema-t-018-constraints-golden", @@ -12263,7 +12263,7 @@ "model_name": "DeepSeek R1", "total_tests": 5, "passed_tests": 2, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Name = \"positions\")]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"velocities\")]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Name = \"next_positions\")]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.positions.Iter())\n {\n var vel = ctx.Db.velocities.EntityId.Find(pos.EntityId);\n if (vel.HasValue)\n {\n ctx.Db.next_positions.EntityId.Update(new NextPosition\n {\n EntityId = pos.EntityId,\n X = pos.X + vel.Value.VX,\n Y = pos.Y + vel.Value.VY\n });\n }\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Accessor = \"positions\")]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"velocities\")]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Accessor = \"next_positions\")]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.positions.Iter())\n {\n var vel = ctx.Db.velocities.EntityId.Find(pos.EntityId);\n if (vel.HasValue)\n {\n ctx.Db.next_positions.EntityId.Update(new NextPosition\n {\n EntityId = pos.EntityId,\n X = pos.X + vel.Value.VX,\n Y = pos.Y + vel.Value.VY\n });\n }\n }\n }\n}", "category": "schema", "route_api_model": "deepseek-reasoner", "golden_db": "schema-t-020-ecs-golden", @@ -12330,7 +12330,7 @@ "model_name": "DeepSeek R1", "total_tests": 4, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"logs\")]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = [nameof(UserId), nameof(Day)])]\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"logs\")]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = [nameof(UserId), nameof(Day)])]\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", "category": "schema", "route_api_model": "deepseek-reasoner", "golden_db": "schema-t-021-multi-column-index-golden", @@ -12399,7 +12399,7 @@ "model_name": "DeepSeek V3", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct Users\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"products\", Public = true)]\n public partial struct Products\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Name = \"notes\", Public = true)]\n public partial struct Notes\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct Users\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"products\", Public = true)]\n public partial struct Products\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Accessor = \"notes\", Public = true)]\n public partial struct Notes\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-001-basic-tables-golden", @@ -12433,7 +12433,7 @@ "model_name": "DeepSeek V3", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(new TimeDuration { Microseconds = 50_000 })\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(new TimeDuration { Microseconds = 50_000 })\n });\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-002-scheduled-table-golden", @@ -12467,7 +12467,7 @@ "model_name": "DeepSeek V3", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-003-struct-in-table-golden", @@ -12501,7 +12501,7 @@ "model_name": "DeepSeek V3", "total_tests": 2, "passed_tests": 2, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-004-insert-golden", @@ -12554,7 +12554,7 @@ "model_name": "DeepSeek V3", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user != null)\n {\n ctx.Db.users.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user != null)\n {\n ctx.Db.users.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-005-update-golden", @@ -12614,7 +12614,7 @@ "model_name": "DeepSeek V3", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n if (ctx.Db.users.Id.Find(id) is User user)\n {\n ctx.Db.users.Id.Delete(id);\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n if (ctx.Db.users.Id.Find(id) is User user)\n {\n ctx.Db.users.Id.Delete(id);\n }\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-006-delete-golden", @@ -12664,7 +12664,7 @@ "model_name": "DeepSeek V3", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n \n var user1 = ctx.Db.users.Id.Find(1);\n if (user1 != null)\n {\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n }\n \n ctx.Db.users.Id.Delete(2);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n \n var user1 = ctx.Db.users.Id.Find(1);\n if (user1 != null)\n {\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n }\n \n ctx.Db.users.Id.Delete(2);\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-007-crud-golden", @@ -12730,7 +12730,7 @@ "model_name": "DeepSeek V3", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user != null)\n {\n ctx.Db.results.Insert(new Result { Id = user.Id, Name = user.Name });\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user != null)\n {\n ctx.Db.results.Insert(new Result { Id = user.Id, Name = user.Name });\n }\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-008-index-lookup-golden", @@ -12759,7 +12759,7 @@ "model_name": "DeepSeek V3", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-009-init-golden", @@ -12820,7 +12820,7 @@ "model_name": "DeepSeek V3", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"disconnected\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Id = 0, Kind = \"disconnected\" });\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-010-connect-golden", @@ -12854,7 +12854,7 @@ "model_name": "DeepSeek V3", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n private static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n private static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}", "category": "basics", "route_api_model": "deepseek-chat", "golden_db": "basics-t-011-helper-function-golden", @@ -12915,7 +12915,7 @@ "model_name": "DeepSeek V3", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result\n {\n Id = id,\n Value = new Score { Left = left, Right = right }\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result\n {\n Id = id,\n Value = new Score { Left = left, Right = right }\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-chat", "golden_db": "schema-t-012-spacetime-product-type-golden", @@ -12976,7 +12976,7 @@ "model_name": "DeepSeek V3", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result\n {\n Id = id,\n Value = new Shape.Circle(new Circle { Radius = radius })\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result\n {\n Id = id,\n Value = new Shape.Circle(new Circle { Radius = radius })\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-chat", "golden_db": "schema-t-013-spacetime-sum-type-golden", @@ -13036,7 +13036,7 @@ "model_name": "DeepSeek V3", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"primitives\")]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"primitives\")]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-chat", "golden_db": "schema-t-014-elementary-columns-golden", @@ -13093,7 +13093,7 @@ "model_name": "DeepSeek V3", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Address\n{\n public string Street;\n public int Zip;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Position\n{\n public int X;\n public int Y;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"profiles\")]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Address\n{\n public string Street;\n public int Zip;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Position\n{\n public int X;\n public int Y;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"profiles\")]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-chat", "golden_db": "schema-t-015-product-type-columns-golden", @@ -13150,7 +13150,7 @@ "model_name": "DeepSeek V3", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"drawings\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"drawings\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-chat", "golden_db": "schema-t-016-sum-type-columns-golden", @@ -13207,7 +13207,7 @@ "model_name": "DeepSeek V3", "total_tests": 2, "passed_tests": 2, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(new TimeDuration { Microseconds = 50_000 })\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(new TimeDuration { Microseconds = 50_000 })\n });\n }\n}", "category": "schema", "route_api_model": "deepseek-chat", "golden_db": "schema-t-017-scheduled-columns-golden", @@ -13250,7 +13250,7 @@ "model_name": "DeepSeek V3", "total_tests": 3, "passed_tests": 2, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"accounts\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Unique]\n public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"accounts\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Unique]\n public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", "category": "schema", "route_api_model": "deepseek-chat", "golden_db": "schema-t-018-constraints-golden", @@ -13301,7 +13301,7 @@ "model_name": "DeepSeek V3", "total_tests": 5, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Name = \"groups\", Public = true)]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Name = \"memberships\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = [nameof(UserId)])]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = [nameof(GroupId)])]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.users.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.groups.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.groups.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.memberships.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.memberships.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.memberships.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Accessor = \"groups\", Public = true)]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Accessor = \"memberships\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = [nameof(UserId)])]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = [nameof(GroupId)])]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.users.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.groups.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.groups.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.memberships.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.memberships.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.memberships.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}", "category": "schema", "route_api_model": "deepseek-chat", "golden_db": "schema-t-019-many-to-many-golden", @@ -13370,7 +13370,7 @@ "model_name": "DeepSeek V3", "total_tests": 5, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Name = \"positions\")]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"velocities\")]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Name = \"next_positions\")]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.positions.Iter())\n {\n var vel = ctx.Db.velocities.EntityId.Find(pos.EntityId);\n if (vel != null)\n {\n var nextPos = new NextPosition\n {\n EntityId = pos.EntityId,\n X = pos.X + vel.VX,\n Y = pos.Y + vel.VY\n };\n ctx.Db.next_positions.EntityId.Update(nextPos);\n }\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Accessor = \"positions\")]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"velocities\")]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Accessor = \"next_positions\")]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.positions.Iter())\n {\n var vel = ctx.Db.velocities.EntityId.Find(pos.EntityId);\n if (vel != null)\n {\n var nextPos = new NextPosition\n {\n EntityId = pos.EntityId,\n X = pos.X + vel.VX,\n Y = pos.Y + vel.VY\n };\n ctx.Db.next_positions.EntityId.Update(nextPos);\n }\n }\n }\n}", "category": "schema", "route_api_model": "deepseek-chat", "golden_db": "schema-t-020-ecs-golden", @@ -13399,7 +13399,7 @@ "model_name": "DeepSeek V3", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"logs\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = [nameof(UserId), nameof(Day)])]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"logs\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = [nameof(UserId), nameof(Day)])]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", "category": "schema", "route_api_model": "deepseek-chat", "golden_db": "schema-t-021-multi-column-index-golden", @@ -13500,7 +13500,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct Users\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"products\", Public = true)]\n public partial struct Products\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Name = \"notes\", Public = true)]\n public partial struct Notes\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct Users\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"products\", Public = true)]\n public partial struct Products\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Accessor = \"notes\", Public = true)]\n public partial struct Notes\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}", "category": "basics", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "basics-t-001-basic-tables-golden", @@ -13568,7 +13568,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"entities\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}", "category": "basics", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "basics-t-003-struct-in-table-golden", @@ -13602,7 +13602,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 2, "passed_tests": 2, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}", "category": "basics", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "basics-t-004-insert-golden", @@ -13655,7 +13655,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 3, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user != null)\n {\n user.Name = name;\n user.Age = age;\n user.Active = active;\n ctx.Db.users.Id.Update(user);\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.users.Id.Find(id);\n if (user != null)\n {\n user.Name = name;\n user.Age = age;\n user.Active = active;\n ctx.Db.users.Id.Update(user);\n }\n }\n}", "category": "basics", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "basics-t-005-update-golden", @@ -13684,7 +13684,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.users.Id.Delete(id);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.users.Id.Delete(id);\n }\n}", "category": "basics", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "basics-t-006-delete-golden", @@ -13734,7 +13734,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.users.Id.Delete(2);\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.users.Id.Delete(2);\n }\n}", "category": "basics", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "basics-t-007-crud-golden", @@ -13800,7 +13800,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n if (ctx.Db.users.Id.Find(id) is User user)\n {\n ctx.Db.results.Insert(new Result { Id = user.Id, Name = user.Name });\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n if (ctx.Db.users.Id.Find(id) is User user)\n {\n ctx.Db.results.Insert(new Result { Id = user.Id, Name = user.Name });\n }\n }\n}", "category": "basics", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "basics-t-008-index-lookup-golden", @@ -13857,7 +13857,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 4, "passed_tests": 4, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}", "category": "basics", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "basics-t-009-init-golden", @@ -13918,7 +13918,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 1, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"disconnected\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"events\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"disconnected\" });\n }\n}", "category": "basics", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "basics-t-010-connect-golden", @@ -13952,7 +13952,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n public static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"results\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n public static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}", "category": "basics", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "basics-t-011-helper-function-golden", @@ -14013,7 +14013,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\n }\n}", "category": "schema", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "schema-t-012-spacetime-product-type-golden", @@ -14074,7 +14074,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"results\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\n }\n}", "category": "schema", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "schema-t-013-spacetime-sum-type-golden", @@ -14134,7 +14134,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"primitives\", Public = true)]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"primitives\", Public = true)]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}", "category": "schema", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "schema-t-014-elementary-columns-golden", @@ -14191,7 +14191,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"profiles\")]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"profiles\")]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}", "category": "schema", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "schema-t-015-product-type-columns-golden", @@ -14248,7 +14248,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"drawings\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing { Id = 1, A = new Shape.Circle(new Circle { Radius = 10 }), B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 }) });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"drawings\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing { Id = 1, A = new Shape.Circle(new Circle { Radius = 10 }), B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 }) });\n }\n}", "category": "schema", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "schema-t-016-sum-type-columns-golden", @@ -14348,7 +14348,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 3, "passed_tests": 3, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"accounts\", Public = true)]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Unique]\n public string Email;\n [SpacetimeDB.Index.BTree(Name = \"by_name\")]\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"accounts\", Public = true)]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Unique]\n public string Email;\n [SpacetimeDB.Index.BTree(Name = \"by_name\")]\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", "category": "schema", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "schema-t-018-constraints-golden", @@ -14405,7 +14405,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 5, "passed_tests": 5, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Name = \"groups\", Public = true)]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Name = \"memberships\", Public = true)]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Index.BTree(Name = \"by_user\")]\n public int UserId;\n [SpacetimeDB.Index.BTree(Name = \"by_group\")]\n public int GroupId;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.users.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.groups.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.groups.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.memberships.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.memberships.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.memberships.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"users\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Accessor = \"groups\", Public = true)]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Accessor = \"memberships\", Public = true)]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Index.BTree(Name = \"by_user\")]\n public int UserId;\n [SpacetimeDB.Index.BTree(Name = \"by_group\")]\n public int GroupId;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.users.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.groups.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.groups.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.memberships.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.memberships.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.memberships.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}", "category": "schema", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "schema-t-019-many-to-many-golden", @@ -14475,7 +14475,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 5, "passed_tests": 0, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"entities\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Name = \"positions\", Public = true)]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"velocities\", Public = true)]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Name = \"next_positions\", Public = true)]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var position in ctx.Db.positions.Iter())\n {\n var velocity = ctx.Db.velocities.EntityId.Find(position.EntityId);\n if (velocity != null)\n {\n var nextPosition = new NextPosition\n {\n EntityId = position.EntityId,\n X = position.X + velocity.VX,\n Y = position.Y + velocity.VY,\n };\n ctx.Db.next_positions.EntityId.Update(nextPosition);\n }\n }\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"entities\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Accessor = \"positions\", Public = true)]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"velocities\", Public = true)]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Accessor = \"next_positions\", Public = true)]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var position in ctx.Db.positions.Iter())\n {\n var velocity = ctx.Db.velocities.EntityId.Find(position.EntityId);\n if (velocity != null)\n {\n var nextPosition = new NextPosition\n {\n EntityId = position.EntityId,\n X = position.X + velocity.VX,\n Y = position.Y + velocity.VY,\n };\n ctx.Db.next_positions.EntityId.Update(nextPosition);\n }\n }\n }\n}", "category": "schema", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "schema-t-020-ecs-golden", @@ -14504,7 +14504,7 @@ "model_name": "Meta Llama 3.1 405B", "total_tests": 4, "passed_tests": 1, - "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"logs\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { nameof(Log.UserId), nameof(Log.Day) })]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 0, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 0, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 0, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", + "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"logs\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { nameof(Log.UserId), nameof(Log.Day) })]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 0, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 0, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 0, UserId = 9, Day = 1, Message = \"c\" });\n }\n}", "category": "schema", "route_api_model": "meta-llama/llama-3.1-405b-instruct", "golden_db": "schema-t-021-multi-column-index-golden", @@ -15927,7 +15927,7 @@ "syntax": "csharp" }, "schema/t_018_constraints": { - "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [SpacetimeDB.Table(Name = \"accounts\", Public = true)]\r\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\r\n public partial struct Account\r\n {\r\n [SpacetimeDB.PrimaryKey] public int Id;\r\n [SpacetimeDB.Unique] public string Email;\r\n public string Name;\r\n }\r\n\r\n [SpacetimeDB.Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\r\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\r\n }\r\n}", + "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [SpacetimeDB.Table(Accessor = \"accounts\", Public = true)]\r\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\r\n public partial struct Account\r\n {\r\n [SpacetimeDB.PrimaryKey] public int Id;\r\n [SpacetimeDB.Unique] public string Email;\r\n public string Name;\r\n }\r\n\r\n [SpacetimeDB.Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\r\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\r\n }\r\n}", "syntax": "csharp" }, "schema/t_019_many_to_many": { @@ -16015,7 +16015,7 @@ "syntax": "csharp" }, "t_018_constraints": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"accounts\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey] public int Id;\n [SpacetimeDB.Unique] public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"accounts\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey] public int Id;\n [SpacetimeDB.Unique] public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}", "syntax": "csharp" }, "t_019_many_to_many": { @@ -42990,4 +42990,4 @@ "golden_answers": {} } ] -} \ No newline at end of file +} diff --git a/docs/static/ai-rules/spacetimedb-csharp.mdc b/docs/static/ai-rules/spacetimedb-csharp.mdc index e7dc36afca8..38e47cf75b3 100644 --- a/docs/static/ai-rules/spacetimedb-csharp.mdc +++ b/docs/static/ai-rules/spacetimedb-csharp.mdc @@ -65,7 +65,7 @@ ScheduledAt = ScheduleAt.Time(ctx.Timestamp + TimeSpan.FromSeconds(60)) ### 6. Table Accessor Casing: Server vs Client DIFFER! ```csharp // Table defined as: -[SpacetimeDB.Table(Name = "user", Public = true)] +[SpacetimeDB.Table(Accessor = "user", Public = true)] public partial class User { ... } // SERVER-SIDE: Use PascalCase @@ -190,11 +190,11 @@ public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { using SpacetimeDB; // ❌ WRONG — missing partial! -[SpacetimeDB.Table(Name = "player")] +[SpacetimeDB.Table(Accessor = "player")] public struct Player { } // Will not generate properly! // ✅ CORRECT — with partial keyword -[SpacetimeDB.Table(Name = "player", Public = true)] +[SpacetimeDB.Table(Accessor = "player", Public = true)] public partial struct Player { [SpacetimeDB.PrimaryKey] @@ -207,7 +207,7 @@ public partial struct Player } // With single-column index -[SpacetimeDB.Table(Name = "task", Public = true)] +[SpacetimeDB.Table(Accessor = "task", Public = true)] public partial struct Task { [SpacetimeDB.PrimaryKey] @@ -222,7 +222,7 @@ public partial struct Task } // Multi-column index (use fully-qualified attribute!) -[SpacetimeDB.Table(Name = "score", Public = true)] +[SpacetimeDB.Table(Accessor = "score", Public = true)] [SpacetimeDB.Index.BTree(Name = "by_player_game", Columns = new[] { "PlayerId", "GameId" })] public partial struct Score { @@ -451,7 +451,7 @@ public partial struct PlayerStats } // Use in table -[SpacetimeDB.Table(Name = "player", Public = true)] +[SpacetimeDB.Table(Accessor = "player", Public = true)] public partial struct Player { [SpacetimeDB.PrimaryKey] @@ -484,7 +484,7 @@ public partial struct Rectangle { public int Width; public int Height; } public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { } // Step 3: Use in a table -[SpacetimeDB.Table(Name = "drawings", Public = true)] +[SpacetimeDB.Table(Accessor = "drawings", Public = true)] public partial struct Drawing { [SpacetimeDB.PrimaryKey] @@ -588,7 +588,7 @@ _conn.Reducers.OnCreateTask += (ctx) => ```csharp using SpacetimeDB; -[SpacetimeDB.Table(Name = "reminder", Scheduled = nameof(Module.SendReminder))] +[SpacetimeDB.Table(Accessor = "reminder", Scheduled = nameof(Module.SendReminder))] public partial struct Reminder { [SpacetimeDB.PrimaryKey] From b1a92d12405033a1c30925d6e5c9107de30799b7 Mon Sep 17 00:00:00 2001 From: rekhoff Date: Mon, 16 Feb 2026 12:41:06 -0800 Subject: [PATCH 5/6] Updates to more Docs and LLMS to use Accessor attr for C# modules --- .../00400-key-architecture.md | 2 +- .../00300-unity-tutorial/00300-part-2.md | 14 ++-- .../00300-unity-tutorial/00400-part-3.md | 8 +- .../00300-unity-tutorial/00500-part-4.md | 2 +- .../00400-unreal-tutorial/00300-part-2.md | 14 ++-- .../00400-unreal-tutorial/00400-part-3.md | 8 +- .../00400-unreal-tutorial/00500-part-4.md | 2 +- .../00100-databases/00500-cheat-sheet.md | 2 +- .../00200-functions/00500-views.md | 12 +-- .../00300-tables/00240-constraints.md | 2 +- .../00300-tables/00300-indexes.md | 4 +- .../00300-tables/00400-access-permissions.md | 8 +- .../00600-csharp-reference.md | 6 +- docs/llms/docs-benchmark-analysis.md | 2 +- docs/llms/docs-benchmark-details.json | 80 +++++++++---------- docs/static/ai-rules/spacetimedb-csharp.mdc | 6 +- docs/static/llms.md | 38 ++++----- 17 files changed, 105 insertions(+), 105 deletions(-) diff --git a/docs/docs/00100-intro/00100-getting-started/00400-key-architecture.md b/docs/docs/00100-intro/00100-getting-started/00400-key-architecture.md index d5cc55016bf..1479c5154e9 100644 --- a/docs/docs/00100-intro/00100-getting-started/00400-key-architecture.md +++ b/docs/docs/00100-intro/00100-getting-started/00400-key-architecture.md @@ -508,7 +508,7 @@ export const my_player = spacetimedb.view( A view can be written in C# like so: ```csharp -[SpacetimeDB.View(Name = "MyPlayer", Public = true)] +[SpacetimeDB.View(Accessor = "MyPlayer", Public = true)] public static Player? MyPlayer(ViewContext ctx) { return ctx.Db.Player.Identity.Find(ctx.Sender) as Player; diff --git a/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00300-part-2.md b/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00300-part-2.md index f3f987ef989..a4351b431a9 100644 --- a/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00300-part-2.md +++ b/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00300-part-2.md @@ -140,7 +140,7 @@ Let's start by defining the `Config` table. This is a simple table which will st ```csharp // We're using this table as a singleton, so in this table // there will only be one element where the `id` is 0. -[Table(Name = "config", Public = true)] +[Table(Accessor = "config", Public = true)] public partial struct Config { [PrimaryKey] @@ -149,11 +149,11 @@ public partial struct Config } ``` -Let's break down this code. This defines a normal C# `struct` with two fields: `id` and `world_size`. We have added the `[Table(Name = "config", Public = true)]` attribute the struct. This attribute signals to SpacetimeDB that it should create a new SpacetimeDB table with the row type defined by the `Config` type's fields. +Let's break down this code. This defines a normal C# `struct` with two fields: `id` and `world_size`. We have added the `[Table(Accessor = "config", Public = true)]` attribute the struct. This attribute signals to SpacetimeDB that it should create a new SpacetimeDB table with the row type defined by the `Config` type's fields. > Although we're using `lower_snake_case` for our column names to have consistent column names across languages in this tutorial, you can also use `camelCase` or `PascalCase` if you prefer. See [#2168](https://github.com/clockworklabs/SpacetimeDB/issues/2168) for more information. -The `Table` attribute takes two parameters, a `Name` which is the name of the table and what you will use to query the table in SQL, and a `Public` visibility modifier which ensures that the rows of this table are visible to everyone. +The `Table` attribute takes two parameters, an `Accessor` which is the name of the table and what you will use to query the table in SQL, and a `Public` visibility modifier which ensures that the rows of this table are visible to everyone. The `[PrimaryKey]` attribute, specifies that the `id` field should be used as the primary key of the table. @@ -237,7 +237,7 @@ public partial struct DbVector2 Let's create a few tables to represent entities in our game by adding the following to the end of the `Module` class. ```csharp -[Table(Name = "entity", Public = true)] +[Table(Accessor = "entity", Public = true)] public partial struct Entity { [PrimaryKey, AutoInc] @@ -246,7 +246,7 @@ public partial struct Entity public int mass; } -[Table(Name = "circle", Public = true)] +[Table(Accessor = "circle", Public = true)] public partial struct Circle { [PrimaryKey] @@ -258,7 +258,7 @@ public partial struct Circle public SpacetimeDB.Timestamp last_split_time; } -[Table(Name = "food", Public = true)] +[Table(Accessor = "food", Public = true)] public partial struct Food { [PrimaryKey] @@ -382,7 +382,7 @@ Next, let's create a table to store our player data. ```csharp -[Table(Name = "player", Public = true)] +[Table(Accessor = "player", Public = true)] public partial struct Player { [PrimaryKey] diff --git a/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00400-part-3.md b/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00400-part-3.md index 2159031affd..24eedbb6fce 100644 --- a/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00400-part-3.md +++ b/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00400-part-3.md @@ -243,7 +243,7 @@ We would like for this function to be called periodically to "top up" the amount In order to schedule a reducer to be called we have to create a new table which specifies when an how a reducer should be called. Add this new table to the top of the `Module` class. ```csharp -[Table(Name = "spawn_food_timer", Scheduled = nameof(SpawnFood), ScheduledAt = nameof(scheduled_at))] +[Table(Accessor = "spawn_food_timer", Scheduled = nameof(SpawnFood), ScheduledAt = nameof(scheduled_at))] public partial struct SpawnFoodTimer { [PrimaryKey, AutoInc] @@ -413,7 +413,7 @@ Let's add a second table to our `Player` struct. Modify the `Player` struct by a ```csharp -[Table(Name = "logged_out_player")] +[Table(Accessor = "logged_out_player")] ``` @@ -439,8 +439,8 @@ Your struct should now look like this: ```csharp -[Table(Name = "player", Public = true)] -[Table(Name = "logged_out_player")] +[Table(Accessor = "player", Public = true)] +[Table(Accessor = "logged_out_player")] public partial struct Player { [PrimaryKey] diff --git a/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00500-part-4.md b/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00500-part-4.md index d5a7a3ca3e9..845d01fb325 100644 --- a/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00500-part-4.md +++ b/docs/docs/00100-intro/00300-tutorials/00300-unity-tutorial/00500-part-4.md @@ -331,7 +331,7 @@ Finally, let's schedule a reducer to run every 50 milliseconds to move the playe ```csharp -[Table(Name = "move_all_players_timer", Scheduled = nameof(MoveAllPlayers), ScheduledAt = nameof(scheduled_at))] +[Table(Accessor = "move_all_players_timer", Scheduled = nameof(MoveAllPlayers), ScheduledAt = nameof(scheduled_at))] public partial struct MoveAllPlayersTimer { [PrimaryKey, AutoInc] diff --git a/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00300-part-2.md b/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00300-part-2.md index 20b318df9c3..3f09d8d9119 100644 --- a/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00300-part-2.md +++ b/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00300-part-2.md @@ -140,7 +140,7 @@ Let's start by defining the `Config` table. This is a simple table which will st ```csharp // We're using this table as a singleton, so in this table // there will only be one element where the `id` is 0. -[Table(Name = "config", Public = true)] +[Table(Accessor = "config", Public = true)] public partial struct Config { [PrimaryKey] @@ -149,11 +149,11 @@ public partial struct Config } ``` -Let's break down this code. This defines a normal C# `struct` with two fields: `id` and `world_size`. We have added the `[Table(Name = "config", Public = true)]` attribute the struct. This attribute signals to SpacetimeDB that it should create a new SpacetimeDB table with the row type defined by the `Config` type's fields. +Let's break down this code. This defines a normal C# `struct` with two fields: `id` and `world_size`. We have added the `[Table(Accessor = "config", Public = true)]` attribute the struct. This attribute signals to SpacetimeDB that it should create a new SpacetimeDB table with the row type defined by the `Config` type's fields. > Although we're using `lower_snake_case` for our column names to have consistent column names across languages in this tutorial, you can also use `camelCase` or `PascalCase` if you prefer. See [#2168](https://github.com/clockworklabs/SpacetimeDB/issues/2168) for more information. -The `Table` attribute takes two parameters, a `Name` which is the name of the table and what you will use to query the table in SQL, and a `Public` visibility modifier which ensures that the rows of this table are visible to everyone. +The `Table` attribute takes two parameters, an `Accessor` which is the name of the table and what you will use to query the table in SQL, and a `Public` visibility modifier which ensures that the rows of this table are visible to everyone. The `[PrimaryKey]` attribute, specifies that the `id` field should be used as the primary key of the table. @@ -237,7 +237,7 @@ public partial struct DbVector2 Let's create a few tables to represent entities in our game by adding the following to the end of the `Module` class. ```csharp -[Table(Name = "entity", Public = true)] +[Table(Accessor = "entity", Public = true)] public partial struct Entity { [PrimaryKey, AutoInc] @@ -246,7 +246,7 @@ public partial struct Entity public int mass; } -[Table(Name = "circle", Public = true)] +[Table(Accessor = "circle", Public = true)] public partial struct Circle { [PrimaryKey] @@ -258,7 +258,7 @@ public partial struct Circle public SpacetimeDB.Timestamp last_split_time; } -[Table(Name = "food", Public = true)] +[Table(Accessor = "food", Public = true)] public partial struct Food { [PrimaryKey] @@ -382,7 +382,7 @@ Next, let's create a table to store our player data. ```csharp -[Table(Name = "player", Public = true)] +[Table(Accessor = "player", Public = true)] public partial struct Player { [PrimaryKey] diff --git a/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00400-part-3.md b/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00400-part-3.md index d47033f7a07..088170f13ed 100644 --- a/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00400-part-3.md +++ b/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00400-part-3.md @@ -243,7 +243,7 @@ We would like for this function to be called periodically to "top up" the amount In order to schedule a reducer to be called we have to create a new table which specifies when an how a reducer should be called. Add this new table to the top of the `Module` class. ```csharp -[Table(Name = "spawn_food_timer", Scheduled = nameof(SpawnFood), ScheduledAt = nameof(scheduled_at))] +[Table(Accessor = "spawn_food_timer", Scheduled = nameof(SpawnFood), ScheduledAt = nameof(scheduled_at))] public partial struct SpawnFoodTimer { [PrimaryKey, AutoInc] @@ -407,7 +407,7 @@ Let's add a second table to our `Player` struct. Modify the `Player` struct by a ```csharp -[Table(Name = "logged_out_player")] +[Table(Accessor = "logged_out_player")] ``` @@ -433,8 +433,8 @@ Your struct should now look like this: ```csharp -[Table(Name = "player", Public = true)] -[Table(Name = "logged_out_player")] +[Table(Accessor = "player", Public = true)] +[Table(Accessor = "logged_out_player")] public partial struct Player { [PrimaryKey] diff --git a/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00500-part-4.md b/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00500-part-4.md index 956a3de2958..6782a7b6ce5 100644 --- a/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00500-part-4.md +++ b/docs/docs/00100-intro/00300-tutorials/00400-unreal-tutorial/00500-part-4.md @@ -330,7 +330,7 @@ Finally, let's schedule a reducer to run every 50 milliseconds to move the playe ```csharp -[Table(Name = "move_all_players_timer", Scheduled = nameof(MoveAllPlayers), ScheduledAt = nameof(scheduled_at))] +[Table(Accessor = "move_all_players_timer", Scheduled = nameof(MoveAllPlayers), ScheduledAt = nameof(scheduled_at))] public partial struct MoveAllPlayersTimer { [PrimaryKey, AutoInc] diff --git a/docs/docs/00200-core-concepts/00100-databases/00500-cheat-sheet.md b/docs/docs/00200-core-concepts/00100-databases/00500-cheat-sheet.md index 80333384bac..88d890acd45 100644 --- a/docs/docs/00200-core-concepts/00100-databases/00500-cheat-sheet.md +++ b/docs/docs/00200-core-concepts/00100-databases/00500-cheat-sheet.md @@ -115,7 +115,7 @@ public partial struct Player // Multi-column index [SpacetimeDB.Table] -[SpacetimeDB.Index.BTree(Name = "idx", Columns = ["PlayerId", "Level"])] +[SpacetimeDB.Index.BTree(Accessor = "idx", Columns = ["PlayerId", "Level"])] public partial struct Score { public ulong PlayerId; diff --git a/docs/docs/00200-core-concepts/00200-functions/00500-views.md b/docs/docs/00200-core-concepts/00200-functions/00500-views.md index 58ff7bd3cd9..21b182ae26f 100644 --- a/docs/docs/00200-core-concepts/00200-functions/00500-views.md +++ b/docs/docs/00200-core-concepts/00200-functions/00500-views.md @@ -128,14 +128,14 @@ public static partial class Module } // At-most-one row: return T? - [SpacetimeDB.View(Name = "MyPlayer", Public = true)] + [SpacetimeDB.View(Accessor = "MyPlayer", Public = true)] public static Player? MyPlayer(ViewContext ctx) { return ctx.Db.Player.Identity.Find(ctx.Sender) as Player; } // Multiple rows: return a list - [SpacetimeDB.View(Name = "PlayersForLevel", Public = true)] + [SpacetimeDB.View(Accessor = "PlayersForLevel", Public = true)] public static List PlayersForLevel(AnonymousViewContext ctx) { var rows = new List(); @@ -339,7 +339,7 @@ export const my_player = spacetimedb.view( ```csharp // Per-user: each client sees their own player -[SpacetimeDB.View(Name = "MyPlayer", Public = true)] +[SpacetimeDB.View(Accessor = "MyPlayer", Public = true)] public static Player? MyPlayer(ViewContext ctx) { return ctx.Db.Player.Identity.Find(ctx.Sender); @@ -417,7 +417,7 @@ public partial struct Player } // Shared: same high scorers for all clients -[SpacetimeDB.View(Name = "HighScorers", Public = true)] +[SpacetimeDB.View(Accessor = "HighScorers", Public = true)] public static List HighScorers(AnonymousViewContext ctx) { // Get all players with score >= 1000 using the btree index @@ -562,7 +562,7 @@ public partial class Module } // Shared: all players in chunk (0,0) share this view - [SpacetimeDB.View(Name = "EntitiesInOriginChunk", Public = true)] + [SpacetimeDB.View(Accessor = "EntitiesInOriginChunk", Public = true)] public static List EntitiesInOriginChunk(AnonymousViewContext ctx) { // All entities in chunk (0, 0) - shared by everyone viewing this chunk @@ -572,7 +572,7 @@ public partial class Module } // Per-user: returns entities in the chunk the player is currently in - [SpacetimeDB.View(Name = "EntitiesInMyChunk", Public = true)] + [SpacetimeDB.View(Accessor = "EntitiesInMyChunk", Public = true)] public static List EntitiesInMyChunk(ViewContext ctx) { if (ctx.Db.Player.Identity.Find(ctx.Sender) is not Player player) diff --git a/docs/docs/00200-core-concepts/00300-tables/00240-constraints.md b/docs/docs/00200-core-concepts/00300-tables/00240-constraints.md index 2f80d0e5cc2..5ac210878d6 100644 --- a/docs/docs/00200-core-concepts/00300-tables/00240-constraints.md +++ b/docs/docs/00200-core-concepts/00300-tables/00240-constraints.md @@ -119,7 +119,7 @@ const inventory = table( ```csharp [SpacetimeDB.Table(Accessor = "Inventory", Public = true)] -[SpacetimeDB.Index.BTree(Name = "by_user_item", Columns = new[] { nameof(UserId), nameof(ItemId) })] +[SpacetimeDB.Index.BTree(Accessor = "by_user_item", Columns = new[] { nameof(UserId), nameof(ItemId) })] public partial struct Inventory { [SpacetimeDB.PrimaryKey] diff --git a/docs/docs/00200-core-concepts/00300-tables/00300-indexes.md b/docs/docs/00200-core-concepts/00300-tables/00300-indexes.md index 34c86eef59c..f4324bd57e2 100644 --- a/docs/docs/00200-core-concepts/00300-tables/00300-indexes.md +++ b/docs/docs/00200-core-concepts/00300-tables/00300-indexes.md @@ -196,7 +196,7 @@ const user = table( ```csharp [SpacetimeDB.Table(Accessor = "User", Public = true)] -[SpacetimeDB.Index.BTree(Name = "idx_age", Columns = new[] { "Age" })] +[SpacetimeDB.Index.BTree(Accessor = "idx_age", Columns = new[] { "Age" })] public partial struct User { [SpacetimeDB.PrimaryKey] @@ -265,7 +265,7 @@ const score = table( ```csharp [SpacetimeDB.Table(Accessor = "Score", Public = true)] -[SpacetimeDB.Index.BTree(Name = "by_player_and_level", Columns = new[] { "PlayerId", "Level" })] +[SpacetimeDB.Index.BTree(Accessor = "by_player_and_level", Columns = new[] { "PlayerId", "Level" })] public partial struct Score { public uint PlayerId; diff --git a/docs/docs/00200-core-concepts/00300-tables/00400-access-permissions.md b/docs/docs/00200-core-concepts/00300-tables/00400-access-permissions.md index 9df274cefda..a199d64d4b2 100644 --- a/docs/docs/00200-core-concepts/00300-tables/00400-access-permissions.md +++ b/docs/docs/00200-core-concepts/00300-tables/00400-access-permissions.md @@ -365,7 +365,7 @@ export const findUsersByName = spacetimedb.view( ```csharp -[SpacetimeDB.View(Name = "FindUsersByName", Public = true)] +[SpacetimeDB.View(Accessor = "FindUsersByName", Public = true)] public static List FindUsersByName(ViewContext ctx) { // Can read and filter @@ -476,7 +476,7 @@ public partial class Module } // Public view that only returns messages the caller can see - [SpacetimeDB.View(Name = "MyMessages", Public = true)] + [SpacetimeDB.View(Accessor = "MyMessages", Public = true)] public static List MyMessages(ViewContext ctx) { // Look up messages by index where caller is sender or recipient @@ -638,7 +638,7 @@ public partial class Module } // Public view that returns the caller's profile without sensitive data - [SpacetimeDB.View(Name = "MyProfile", Public = true)] + [SpacetimeDB.View(Accessor = "MyProfile", Public = true)] public static PublicUserProfile? MyProfile(ViewContext ctx) { // Look up the caller's account by their identity (unique index) @@ -833,7 +833,7 @@ public partial class Module } // View that returns colleagues in the caller's department, without salary info - [SpacetimeDB.View(Name = "MyColleagues", Public = true)] + [SpacetimeDB.View(Accessor = "MyColleagues", Public = true)] public static List MyColleagues(ViewContext ctx) { // Find the caller's employee record by identity (unique index) diff --git a/docs/docs/00200-core-concepts/00600-client-sdk-languages/00600-csharp-reference.md b/docs/docs/00200-core-concepts/00600-client-sdk-languages/00600-csharp-reference.md index 6068a63725f..f81a3f413d4 100644 --- a/docs/docs/00200-core-concepts/00600-client-sdk-languages/00600-csharp-reference.md +++ b/docs/docs/00200-core-concepts/00600-client-sdk-languages/00600-csharp-reference.md @@ -879,7 +879,7 @@ For each unique constraint on a table, its table handle has a property which is Given the following module-side `User` definition: ```csharp -[Table(Name = "User", Public = true)] +[Table(Accessor = "User", Public = true)] public partial class User { [Unique] // Or [PrimaryKey] @@ -903,13 +903,13 @@ For each btree index defined on a remote table, its corresponding table handle h Given the following module-side `Player` definition: ```csharp -[Table(Name = "Player", Public = true)] +[Table(Accessor = "Player", Public = true)] public partial class Player { [PrimaryKey] public Identity id; - [Index.BTree(Name = "Level")] + [Index.BTree(Accessor = "Level")] public uint level; .. } diff --git a/docs/llms/docs-benchmark-analysis.md b/docs/llms/docs-benchmark-analysis.md index d7fb557cafc..459875a4ebb 100644 --- a/docs/llms/docs-benchmark-analysis.md +++ b/docs/llms/docs-benchmark-analysis.md @@ -206,7 +206,7 @@ Generated from: `/__w/SpacetimeDB/SpacetimeDB/tools/xtask-llm-benchmark/../../do public static partial class Module { - [Table(Name = "Primitive")] + [Table(Accessor = "Primitive")] public partial struct Primitive { [PrimaryKey] public int Id; diff --git a/docs/llms/docs-benchmark-details.json b/docs/llms/docs-benchmark-details.json index 9d87238e2f3..b91afc0d43a 100644 --- a/docs/llms/docs-benchmark-details.json +++ b/docs/llms/docs-benchmark-details.json @@ -3457,71 +3457,71 @@ "syntax": "csharp" }, "basics/t_001_basic_tables": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"users\")]\n public partial struct Users\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Name = \"products\")]\n public partial struct Products\n {\n [PrimaryKey] public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [Table(Name = \"notes\")]\n public partial struct Notes\n {\n [PrimaryKey] public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct Users\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Accessor = \"products\")]\n public partial struct Products\n {\n [PrimaryKey] public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [Table(Accessor = \"notes\")]\n public partial struct Notes\n {\n [PrimaryKey] public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}\n", "syntax": "csharp" }, "basics/t_002_scheduled_table": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}", "syntax": "csharp" }, "basics/t_003_struct_in_table": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Name = \"entities\")]\n public partial struct Entity\n {\n [PrimaryKey] public int Id;\n public Position Pos;\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"entities\")]\n public partial struct Entity\n {\n [PrimaryKey] public int Id;\n public Position Pos;\n }\n}\n", "syntax": "csharp" }, "basics/t_004_insert": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n", "syntax": "csharp" }, "basics/t_005_update": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n", "syntax": "csharp" }, "basics/t_006_delete": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.users.Id.Delete(id);\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.users.Id.Delete(id);\n }\n}\n", "syntax": "csharp" }, "basics/t_007_crud": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.users.Id.Delete(2);\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.users.Id.Delete(2);\n }\n}\n", "syntax": "csharp" }, "basics/t_008_index_lookup": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Name = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public string Name;\n }\n\n [Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var u = ctx.Db.users.Id.Find(id);\n if (u.HasValue)\n {\n var row = u.Value;\n ctx.Db.results.Insert(new Result { Id = row.Id, Name = row.Name });\n }\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Accessor = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public string Name;\n }\n\n [Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var u = ctx.Db.users.Id.Find(id);\n if (u.HasValue)\n {\n var row = u.Value;\n ctx.Db.results.Insert(new Result { Id = row.Id, Name = row.Name });\n }\n }\n}\n", "syntax": "csharp" }, "basics/t_009_init": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}\n", "syntax": "csharp" }, "basics/t_010_connect": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"events\")]\n public partial struct Event\n {\n [PrimaryKey, AutoInc] public int Id;\n public string Kind;\n }\n\n [Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"connected\" });\n }\n\n [Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"disconnected\" });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"events\")]\n public partial struct Event\n {\n [PrimaryKey, AutoInc] public int Id;\n public string Kind;\n }\n\n [Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"connected\" });\n }\n\n [Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"disconnected\" });\n }\n}\n", "syntax": "csharp" }, "basics/t_011_helper_function": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public int Sum;\n }\n\n static int Add(int a, int b) => a + b;\n\n [Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public int Sum;\n }\n\n static int Add(int a, int b) => a + b;\n\n [Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}\n", "syntax": "csharp" }, "schema/t_012_spacetime_product_type": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [Table(Name = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Score Value;\n }\n\n [Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [Table(Accessor = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Score Value;\n }\n\n [Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\n }\n}\n", "syntax": "csharp" }, "schema/t_013_spacetime_sum_type": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Name = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Shape Value;\n }\n\n [Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Accessor = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Shape Value;\n }\n\n [Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\n }\n}\n", "syntax": "csharp" }, "schema/t_014_elementary_columns": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"primitives\")]\n public partial struct Primitive\n {\n [PrimaryKey] public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"primitives\")]\n public partial struct Primitive\n {\n [PrimaryKey] public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}\n", "syntax": "csharp" }, "schema/t_015_product_type_columns": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Name = \"profiles\")]\n public partial struct Profile\n {\n [PrimaryKey] public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"profiles\")]\n public partial struct Profile\n {\n [PrimaryKey] public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}\n", "syntax": "csharp" }, "schema/t_016_sum_type_columns": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Name = \"drawings\")]\n public partial struct Drawing\n {\n [PrimaryKey] public int Id;\n public Shape A;\n public Shape B;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Accessor = \"drawings\")]\n public partial struct Drawing\n {\n [PrimaryKey] public int Id;\n public Shape A;\n public Shape B;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}\n", "syntax": "csharp" }, "schema/t_017_scheduled_columns": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}\n", "syntax": "csharp" }, "schema/t_018_constraints": { @@ -3529,15 +3529,15 @@ "syntax": "csharp" }, "schema/t_019_many_to_many": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int UserId;\n public string Name;\n }\n\n [Table(Name = \"groups\")]\n public partial struct Group\n {\n [PrimaryKey] public int GroupId;\n public string Title;\n }\n\n [Table(Name = \"memberships\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = new[] { nameof(UserId) })]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = new[] { nameof(GroupId) })]\n public partial struct Membership\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.users.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.groups.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.groups.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.memberships.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.memberships.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.memberships.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int UserId;\n public string Name;\n }\n\n [Table(Accessor = \"groups\")]\n public partial struct Group\n {\n [PrimaryKey] public int GroupId;\n public string Title;\n }\n\n [Table(Accessor = \"memberships\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = new[] { nameof(UserId) })]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = new[] { nameof(GroupId) })]\n public partial struct Membership\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.users.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.groups.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.groups.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.memberships.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.memberships.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.memberships.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}\n", "syntax": "csharp" }, "schema/t_020_ecs": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"entities\")]\n public partial struct Entity { [PrimaryKey] public int Id; }\n\n [Table(Name = \"positions\")]\n public partial struct Position\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Table(Name = \"velocities\")]\n public partial struct Velocity\n {\n [PrimaryKey] public int EntityId;\n public int VX;\n public int VY;\n }\n\n [Table(Name = \"next_positions\")]\n public partial struct NextPosition\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var p in ctx.Db.positions.Iter())\n {\n var velOpt = ctx.Db.velocities.EntityId.Find(p.EntityId);\n if (!velOpt.HasValue) continue;\n\n var np = new NextPosition {\n EntityId = p.EntityId,\n X = p.X + velOpt.Value.VX,\n Y = p.Y + velOpt.Value.VY\n };\n\n if (ctx.Db.next_positions.EntityId.Find(p.EntityId).HasValue)\n ctx.Db.next_positions.EntityId.Update(np);\n else\n ctx.Db.next_positions.Insert(np);\n }\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"entities\")]\n public partial struct Entity { [PrimaryKey] public int Id; }\n\n [Table(Accessor = \"positions\")]\n public partial struct Position\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"velocities\")]\n public partial struct Velocity\n {\n [PrimaryKey] public int EntityId;\n public int VX;\n public int VY;\n }\n\n [Table(Accessor = \"next_positions\")]\n public partial struct NextPosition\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var p in ctx.Db.positions.Iter())\n {\n var velOpt = ctx.Db.velocities.EntityId.Find(p.EntityId);\n if (!velOpt.HasValue) continue;\n\n var np = new NextPosition {\n EntityId = p.EntityId,\n X = p.X + velOpt.Value.VX,\n Y = p.Y + velOpt.Value.VY\n };\n\n if (ctx.Db.next_positions.EntityId.Find(p.EntityId).HasValue)\n ctx.Db.next_positions.EntityId.Update(np);\n else\n ctx.Db.next_positions.Insert(np);\n }\n }\n}\n", "syntax": "csharp" }, "schema/t_021_multi_column_index": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"logs\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { nameof(UserId), nameof(Day) })]\n public partial struct Log\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"logs\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { nameof(UserId), nameof(Day) })]\n public partial struct Log\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}\n", "syntax": "csharp" }, "t_000_empty_reducers": { @@ -3545,71 +3545,71 @@ "syntax": "csharp" }, "t_001_basic_tables": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Name = \"Product\")]\n public partial struct Product\n {\n [PrimaryKey] public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [Table(Name = \"Note\")]\n public partial struct Note\n {\n [PrimaryKey] public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Accessor = \"Product\")]\n public partial struct Product\n {\n [PrimaryKey] public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [Table(Accessor = \"Note\")]\n public partial struct Note\n {\n [PrimaryKey] public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}\n", "syntax": "csharp" }, "t_002_scheduled_table": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}\n", "syntax": "csharp" }, "t_003_struct_in_table": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Name = \"Entity\")]\n public partial struct Entity\n {\n [PrimaryKey] public int Id;\n public Position Pos;\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"Entity\")]\n public partial struct Entity\n {\n [PrimaryKey] public int Id;\n public Position Pos;\n }\n}\n", "syntax": "csharp" }, "t_004_insert": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n", "syntax": "csharp" }, "t_005_update": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n", "syntax": "csharp" }, "t_006_delete": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.User.Id.Delete(id);\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.User.Id.Delete(id);\n }\n}\n", "syntax": "csharp" }, "t_007_crud": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.User.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.User.Id.Delete(2);\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.User.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.User.Id.Delete(2);\n }\n}\n", "syntax": "csharp" }, "t_008_index_lookup": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Name = \"Result\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public string Name;\n }\n\n [Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var u = ctx.Db.User.Id.Find(id);\n if (u.HasValue)\n {\n var row = u.Value;\n ctx.Db.Result.Insert(new Result { Id = row.Id, Name = row.Name });\n }\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public string Name;\n }\n\n [Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var u = ctx.Db.User.Id.Find(id);\n if (u.HasValue)\n {\n var row = u.Value;\n ctx.Db.Result.Insert(new Result { Id = row.Id, Name = row.Name });\n }\n }\n}\n", "syntax": "csharp" }, "t_009_init": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}\n", "syntax": "csharp" }, "t_010_connect": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"Event\")]\n public partial struct Event\n {\n [PrimaryKey, AutoInc] public int Id;\n public string Kind;\n }\n\n [Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Kind = \"connected\" });\n }\n\n [Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Kind = \"disconnected\" });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"Event\")]\n public partial struct Event\n {\n [PrimaryKey, AutoInc] public int Id;\n public string Kind;\n }\n\n [Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Kind = \"connected\" });\n }\n\n [Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Kind = \"disconnected\" });\n }\n}\n", "syntax": "csharp" }, "t_011_helper_function": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"Result\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public int Sum;\n }\n\n static int Add(int a, int b) => a + b;\n\n [Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.Result.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public int Sum;\n }\n\n static int Add(int a, int b) => a + b;\n\n [Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.Result.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}\n", "syntax": "csharp" }, "t_012_spacetime_product_type": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n \n [Table(Name = \"Result\", Public = true)]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Score Value;\n }\n\n [Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.Result.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n \n [Table(Accessor = \"Result\", Public = true)]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Score Value;\n }\n\n [Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.Result.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\n }\n}\n", "syntax": "csharp" }, "t_013_spacetime_sum_type": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Name = \"Result\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Shape Value;\n }\n\n [Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Shape Value;\n }\n\n [Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\n }\n}\n", "syntax": "csharp" }, "t_014_elementary_columns": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"Primitive\")]\n public partial struct Primitive\n {\n [PrimaryKey] public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Primitive.Insert(new Primitive {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"Primitive\")]\n public partial struct Primitive\n {\n [PrimaryKey] public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Primitive.Insert(new Primitive {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}\n", "syntax": "csharp" }, "t_015_product_type_columns": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Name = \"Profile\", Public = true)]\n public partial struct Profile\n {\n [PrimaryKey] public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Profile.Insert(new Profile {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"Profile\", Public = true)]\n public partial struct Profile\n {\n [PrimaryKey] public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Profile.Insert(new Profile {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}\n", "syntax": "csharp" }, "t_016_sum_type_columns": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Name = \"Drawing\")]\n public partial struct Drawing\n {\n [PrimaryKey] public int Id;\n public Shape A;\n public Shape B;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Accessor = \"Drawing\")]\n public partial struct Drawing\n {\n [PrimaryKey] public int Id;\n public Shape A;\n public Shape B;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}\n", "syntax": "csharp" }, "t_017_scheduled_columns": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}\n", "syntax": "csharp" }, "t_018_constraints": { @@ -3617,15 +3617,15 @@ "syntax": "csharp" }, "t_019_many_to_many": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int UserId;\n public string Name;\n }\n\n [Table(Name = \"Group\")]\n public partial struct Group\n {\n [PrimaryKey] public int GroupId;\n public string Title;\n }\n\n [Table(Name = \"Membership\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = new[] { nameof(UserId) })]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = new[] { nameof(GroupId) })]\n public partial struct Membership\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.User.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.Group.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.Group.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.Membership.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.Membership.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.Membership.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int UserId;\n public string Name;\n }\n\n [Table(Accessor = \"Group\")]\n public partial struct Group\n {\n [PrimaryKey] public int GroupId;\n public string Title;\n }\n\n [Table(Accessor = \"Membership\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = new[] { nameof(UserId) })]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = new[] { nameof(GroupId) })]\n public partial struct Membership\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.User.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.Group.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.Group.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.Membership.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.Membership.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.Membership.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}\n", "syntax": "csharp" }, "t_020_ecs": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"Entity\")]\n public partial struct Entity { [PrimaryKey] public int Id; }\n\n [Table(Name = \"Position\")]\n public partial struct Position\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Table(Name = \"Velocity\")]\n public partial struct Velocity\n {\n [PrimaryKey] public int EntityId;\n public int VX;\n public int VY;\n }\n\n [Table(Name = \"NextPosition\")]\n public partial struct NextPosition\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\n\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var p in ctx.Db.Position.Iter())\n {\n var velOpt = ctx.Db.Velocity.EntityId.Find(p.EntityId);\n if (!velOpt.HasValue) continue;\n\n var np = new NextPosition {\n EntityId = p.EntityId,\n X = p.X + velOpt.Value.VX,\n Y = p.Y + velOpt.Value.VY\n };\n\n if (ctx.Db.NextPosition.EntityId.Find(p.EntityId).HasValue)\n ctx.Db.NextPosition.EntityId.Update(np);\n else\n ctx.Db.NextPosition.Insert(np);\n }\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"Entity\")]\n public partial struct Entity { [PrimaryKey] public int Id; }\n\n [Table(Accessor = \"Position\")]\n public partial struct Position\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"Velocity\")]\n public partial struct Velocity\n {\n [PrimaryKey] public int EntityId;\n public int VX;\n public int VY;\n }\n\n [Table(Accessor = \"NextPosition\")]\n public partial struct NextPosition\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\n\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var p in ctx.Db.Position.Iter())\n {\n var velOpt = ctx.Db.Velocity.EntityId.Find(p.EntityId);\n if (!velOpt.HasValue) continue;\n\n var np = new NextPosition {\n EntityId = p.EntityId,\n X = p.X + velOpt.Value.VX,\n Y = p.Y + velOpt.Value.VY\n };\n\n if (ctx.Db.NextPosition.EntityId.Find(p.EntityId).HasValue)\n ctx.Db.NextPosition.EntityId.Update(np);\n else\n ctx.Db.NextPosition.Insert(np);\n }\n }\n}\n", "syntax": "csharp" }, "t_021_multi_column_index": { - "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Name = \"Log\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { nameof(UserId), nameof(Day) })]\n public partial struct Log\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Log.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.Log.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.Log.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}\n", + "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"Log\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { nameof(UserId), nameof(Day) })]\n public partial struct Log\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Log.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.Log.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.Log.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}\n", "syntax": "csharp" } } diff --git a/docs/static/ai-rules/spacetimedb-csharp.mdc b/docs/static/ai-rules/spacetimedb-csharp.mdc index 38e47cf75b3..2c4ab731ea6 100644 --- a/docs/static/ai-rules/spacetimedb-csharp.mdc +++ b/docs/static/ai-rules/spacetimedb-csharp.mdc @@ -150,10 +150,10 @@ public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { ### 13. Index Attribute Ambiguity ```csharp // ❌ WRONG — ambiguous with System.Index -[Index.BTree(Name = "idx", Columns = new[] { "Col" })] +[Index.BTree(Accessor = "idx", Columns = new[] { "Col" })] // ✅ CORRECT — fully qualify -[SpacetimeDB.Index.BTree(Name = "idx", Columns = new[] { "Col" })] +[SpacetimeDB.Index.BTree(Accessor = "idx", Columns = new[] { "Col" })] ``` --- @@ -223,7 +223,7 @@ public partial struct Task // Multi-column index (use fully-qualified attribute!) [SpacetimeDB.Table(Accessor = "score", Public = true)] -[SpacetimeDB.Index.BTree(Name = "by_player_game", Columns = new[] { "PlayerId", "GameId" })] +[SpacetimeDB.Index.BTree(Accessor = "by_player_game", Columns = new[] { "PlayerId", "GameId" })] public partial struct Score { [SpacetimeDB.PrimaryKey] diff --git a/docs/static/llms.md b/docs/static/llms.md index 733b655fda9..4877ef3358b 100644 --- a/docs/static/llms.md +++ b/docs/static/llms.md @@ -1320,16 +1320,16 @@ Table and Type definitions in C# should use the `partial` keyword (e.g., `public Database tables store the application's persistent state. They are defined using C# classes or structs marked with the `[Table]` attribute. -- **Core Attribute:** `[Table(Name = "my_table_name", ...)]` marks a class or struct as a database table definition. The specified string `Name` is how the table will be referenced in SQL queries and generated APIs. +- **Core Attribute:** `[Table(Accessor = "my_table_name", ...)]` marks a class or struct as a database table definition. The specified string `Accessor` is how the table will be referenced in SQL queries and generated APIs. - **Partial Modifier:** Use the `partial` keyword (e.g., `public partial class MyTable`) to allow SpacetimeDB's source generators to add necessary methods and logic to your definition. - **Public vs. Private:** By default, tables are **private**, accessible only by server-side reducer code. To allow clients to read or subscribe to a table's data, set `Public = true` within the attribute: `[Table(..., Public = true)]`. This is a common source of errors if forgotten. - **Primary Keys:** Designate a single **public field** as the primary key using `[PrimaryKey]`. This ensures uniqueness, creates an efficient index, and allows clients to track row updates. - **Auto-Increment:** Mark an integer-typed primary key **public field** with `[AutoInc]` to have SpacetimeDB automatically assign unique, sequentially increasing values upon insertion. Provide `0` as the value for this field when inserting a new row to trigger the auto-increment mechanism. - **Unique Constraints:** Enforce uniqueness on non-primary key **public fields** using `[Unique]`. Attempts to insert or update rows violating this constraint will fail (throw an exception). -- **Indexes:** Create B-tree indexes for faster lookups on specific **public fields** or combinations of fields. Use `[Index.BTree]` on a single field for a simple index, or define indexes at the class/struct level using `[Index.BTree(Name = "MyIndexName", Columns = new[] { nameof(ColA), nameof(ColB) })]`. +- **Indexes:** Create B-tree indexes for faster lookups on specific **public fields** or combinations of fields. Use `[Index.BTree]` on a single field for a simple index, or define indexes at the class/struct level using `[Index.BTree(Accessor = "MyIndexName", Columns = new[] { nameof(ColA), nameof(ColB) })]`. - **Nullable Fields:** Use standard C# nullable reference types (`string?`) or nullable value types (`int?`, `Timestamp?`) for fields that can hold null values. - **Instances vs. Database:** Remember that table class/struct instances (e.g., `var player = new PlayerState { ... };`) are just data objects. Modifying an instance does **not** automatically update the database. Interaction happens through generated handles accessed via the `ReducerContext` (e.g., `ctx.Db.player_state.Insert(...)`). -- **Case Sensitivity:** Table names specified via `Name = "..."` are case-sensitive and must be matched exactly in SQL queries. +- **Case Sensitivity:** Table names specified via `Accessor = "..."` are case-sensitive and must be matched exactly in SQL queries. - **Pitfalls:** - SpacetimeDB attributes (`[PrimaryKey]`, `[AutoInc]`, `[Unique]`, `[Index.BTree]`) **must** be applied to **public fields**, not properties (`{ get; set; }`). Using properties can cause build errors or runtime issues. - Avoid manually inserting values into `[AutoInc]` fields that are also `[Unique]`, especially values larger than the current sequence counter, as this can lead to future unique constraint violations when the counter catches up. @@ -1344,8 +1344,8 @@ using System; // For Nullable types if needed // Assume Position, PlayerStatus, ItemType are defined as types // Example Table Definition -[Table(Name = "player_state", Public = true)] -[Index.BTree(Name = "idx_level", Columns = new[] { nameof(Level) })] // Table-level index +[Table(Accessor = "player_state", Public = true)] +[Index.BTree(Accessor = "idx_level", Columns = new[] { nameof(Level) })] // Table-level index public partial class PlayerState { [PrimaryKey] @@ -1359,7 +1359,7 @@ public partial class PlayerState public Timestamp? LastLogin; // Public field, nullable struct } -[Table(Name = "inventory_item", Public = true)] +[Table(Accessor = "inventory_item", Public = true)] public partial class InventoryItem { [PrimaryKey] @@ -1372,7 +1372,7 @@ public partial class InventoryItem } // Example of a private table -[Table(Name = "internal_game_data")] // Public = false is default +[Table(Accessor = "internal_game_data")] // Public = false is default public partial class InternalGameData { [PrimaryKey] @@ -1399,13 +1399,13 @@ public partial class CharacterInfo } // Define derived classes, each with its own table attribute -[Table(Name = "active_characters")] +[Table(Accessor = "active_characters")] public partial class ActiveCharacter : CharacterInfo { // Can add specific public fields if needed public bool IsOnline; } -[Table(Name = "deleted_characters")] +[Table(Accessor = "deleted_characters")] public partial class DeletedCharacter : CharacterInfo { // Can add specific public fields if needed public Timestamp DeletionTime; @@ -1423,8 +1423,8 @@ using SpacetimeDB; // Define the core data structure once // Apply multiple [Table] attributes to map it to different tables [Type] // Mark as a type if used elsewhere (e.g., reducer args) -[Table(Name = "logged_in_players", Public = true)] -[Table(Name = "players_in_lobby", Public = true)] +[Table(Accessor = "logged_in_players", Public = true)] +[Table(Accessor = "players_in_lobby", Public = true)] public partial class PlayerSessionData { [PrimaryKey] @@ -1466,11 +1466,11 @@ using System.Linq; // Used in more complex examples later public static partial class Module { // Assume PlayerState and InventoryItem tables are defined as previously - [Table(Name = "player_state", Public = true)] public partial class PlayerState { + [Table(Accessor = "player_state", Public = true)] public partial class PlayerState { [PrimaryKey] public Identity PlayerId; [Unique] public string Name = ""; public uint Health; public ushort Level; /* ... other fields */ } - [Table(Name = "inventory_item", Public = true)] public partial class InventoryItem { + [Table(Accessor = "inventory_item", Public = true)] public partial class InventoryItem { [PrimaryKey] #[AutoInc] public ulong ItemId; public Identity OwnerId; /* ... other fields */ } @@ -1583,7 +1583,7 @@ using System; public static partial class Module { - [Table(Name = "unique_items")] + [Table(Accessor = "unique_items")] public partial class UniqueItem { [PrimaryKey] public string ItemName; public int Value; @@ -1649,7 +1649,7 @@ In addition to lifecycle annotations, reducers can be scheduled. This allows cal The scheduling information for a reducer is stored in a table. This table links to the reducer function and has specific mandatory fields: -1. **Define the Schedule Table:** Create a table class/struct using `[Table(Name = ..., Scheduled = nameof(YourReducerName), ScheduledAt = nameof(YourScheduleAtColumnName))]`. +1. **Define the Schedule Table:** Create a table class/struct using `[Table(Accessor = ..., Scheduled = nameof(YourReducerName), ScheduledAt = nameof(YourScheduleAtColumnName))]`. - The `Scheduled` parameter links this table to the static reducer method `YourReducerName`. - The `ScheduledAt` parameter specifies the name of the field within this table that holds the scheduling information. This field **must** be of type `SpacetimeDB.ScheduleAt`. - The table **must** also have a primary key field (often `[AutoInc] ulong Id`). @@ -1672,7 +1672,7 @@ public static partial class Module { // 1. Define the table with scheduling information, linking to `SendMessage` reducer. // Specifies that the `ScheduledAt` field holds the schedule info. - [Table(Name = "send_message_schedule", Scheduled = nameof(SendMessage), ScheduledAt = nameof(ScheduledAt))] + [Table(Accessor = "send_message_schedule", Scheduled = nameof(SendMessage), ScheduledAt = nameof(ScheduledAt))] public partial struct SendMessageSchedule { // Mandatory fields: @@ -1824,7 +1824,7 @@ public static partial class Module // View that returns the caller's player (user-specific) // Returns T? for at-most-one row - [SpacetimeDB.View(Name = "MyPlayer", Public = true)] + [SpacetimeDB.View(Accessor = "MyPlayer", Public = true)] public static Player? MyPlayer(ViewContext ctx) { return ctx.Db.Player.Identity.Find(ctx.Sender); @@ -1832,7 +1832,7 @@ public static partial class Module // View that returns all players at a specific level (same for all callers) // Returns List for multiple rows - [SpacetimeDB.View(Name = "PlayersForLevel", Public = true)] + [SpacetimeDB.View(Accessor = "PlayersForLevel", Public = true)] public static List PlayersForLevel(AnonymousViewContext ctx) { var rows = new List(); @@ -1883,7 +1883,7 @@ The query builder provides a fluent API for constructing type-safe SQL queries: ```csharp // This view can scan the whole table efficiently because // Query results are computed incrementally -[SpacetimeDB.View(Name = "MyMessages", Public = true)] +[SpacetimeDB.View(Accessor = "MyMessages", Public = true)] public static Query MyMessages(ViewContext ctx) { return ctx.Db.Message From 47beb557a4c39bc64bfe9d88ad97894de5dcfbf2 Mon Sep 17 00:00:00 2001 From: rekhoff Date: Mon, 16 Feb 2026 12:56:23 -0800 Subject: [PATCH 6/6] Updated C# diag module snapshot formatting --- .../diag/snapshots/Module.verified.txt | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module.verified.txt b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module.verified.txt index ca10deb0204..d4052d2d5ce 100644 --- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module.verified.txt +++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module.verified.txt @@ -155,15 +155,17 @@ public partial struct TestIndexIssues }, {/* -[SpacetimeDB.Table(Accessor = "TestScheduleWithoutPrimaryKey", - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Table( + ^^^^^^^^^^^^^^^^^^ + Accessor = "TestScheduleWithoutPrimaryKey", +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Scheduled = "DummyScheduledReducer", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ScheduledAt = nameof(ScheduleAtCorrectType) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ )] ^ -[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongPrimaryKeyType", +[SpacetimeDB.Table( */ Message: TestScheduleWithoutPrimaryKey is a scheduled table but doesn't have a primary key of type `ulong`., Severity: Error, @@ -178,8 +180,10 @@ public partial struct TestIndexIssues }, {/* )] -[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongPrimaryKeyType", - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Table( + ^^^^^^^^^^^^^^^^^^ + Accessor = "TestScheduleWithWrongPrimaryKeyType", +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Scheduled = "DummyScheduledReducer", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ScheduledAt = nameof(ScheduleAtCorrectType) @@ -203,7 +207,7 @@ public partial struct TestIndexIssues )] [SpacetimeDB.Table(Accessor = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongScheduleAtType", +[SpacetimeDB.Table( */ Message: Could not find the specified column ScheduledAt in TestScheduleIssues., Severity: Error, @@ -218,15 +222,17 @@ public partial struct TestIndexIssues }, {/* [SpacetimeDB.Table(Accessor = "TestScheduleWithoutScheduleAt", Scheduled = "DummyScheduledReducer")] -[SpacetimeDB.Table(Accessor = "TestScheduleWithWrongScheduleAtType", - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Table( + ^^^^^^^^^^^^^^^^^^ + Accessor = "TestScheduleWithWrongScheduleAtType", +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Scheduled = "DummyScheduledReducer", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ScheduledAt = nameof(ScheduleAtWrongType) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ )] ^ -[SpacetimeDB.Table(Accessor = "TestScheduleWithMissingScheduleAtField", +[SpacetimeDB.Table( */ Message: TestScheduleWithWrongScheduleAtType is a scheduled table but doesn't have a primary key of type `ulong`., Severity: Error, @@ -241,8 +247,10 @@ public partial struct TestIndexIssues }, {/* )] -[SpacetimeDB.Table(Accessor = "TestScheduleWithMissingScheduleAtField", - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[SpacetimeDB.Table( + ^^^^^^^^^^^^^^^^^^ + Accessor = "TestScheduleWithMissingScheduleAtField", +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Scheduled = "DummyScheduledReducer", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ScheduledAt = "MissingField"