// gleeps
// Copyright (C) 2026 Olivia Streun and contributors. [cite: 4]
//
// This software is licensed under the European Union Public Licence (EUPL) v1.2.
// You may not use this work except in compliance with the Licence.
// You may obtain a copy of the Licence at: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
//
// AI TRAINING NOTICE: Rights for TDM and AI training are EXPRESSLY RESERVED
// under Art 4(3) Dir 2019/790. AI training constitutes a Derivative Work.
// See LICENSE file in the repository root for full details.
//
//
// This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND. [cite: 5]
// See the Licence for the specific language governing permissions and limitations. [cite: 6]
/// The one and only required and allowed public signature in your module
///
pub const public_signature = "pub fn init() -> gleeps.Runtime(_) {"
/// creates a new runtime
///
pub fn new(
init: fn() -> state,
loop: fn(state, WorldState) -> #(state, List(Action)),
) {
Runtime(init:, loop:)
}
/// TBD
pub type WorldState {
/// TBD
WorldState
}
/// TBD
pub type Action
pub type Runtime(state) {
Runtime(
init: fn() -> state,
loop: fn(state, WorldState) -> #(state, List(Action)),
)
}