const std = @import("std");

pub const max_auth_token_size = 256;
pub const AuthToken = std.BoundedArray(u8, max_auth_token_size);

pub const images_url = "https://artifactsmmo.com";
pub const images_uri = std.Uri.parse(images_url) catch @compileError("Images server URL is invalid");

// Specification URL: https://api.artifactsmmo.com/docs
pub const api_url = "https://api.artifactsmmo.com";
pub const docs_url = api_url ++ "/openapi.json";

pub const parseDateTime = @import("./date_time/parse.zig").parseDateTime;

pub const Server = @import("server.zig");
pub const Store = @import("store.zig");
pub const Item = @import("./schemas/item.zig");
pub const Status = @import("./schemas/status.zig");
pub const Position = @import("./schemas/position.zig");
pub const Map = @import("./schemas/map.zig");
// pub const Character = @import("./schemas/character.zig");
// pub const ServerStatus = @import("./schemas/status.zig");
// pub const Map = @import("./schemas/map.zig");
// pub const Position = @import("position.zig");
// pub const BoundedSlotsArray = @import("schemas/slot_array.zig").BoundedSlotsArray;

// pub const Slot = Server.Slot;
// pub const CodeId = Store.Id;
// pub const ItemQuantity = @import("./schemas/item_quantity.zig");

const errors = @import("errors.zig");
pub const FetchError = errors.FetchError;
pub const MoveError = errors.MoveError;
pub const FightError = errors.FightError;
pub const GatherError = errors.GatherError;
pub const BankDepositGoldError = errors.BankDepositGoldError;
pub const BankDepositItemError = errors.BankDepositItemError;
pub const BankWithdrawItemError = errors.BankWithdrawItemError;
pub const CraftError = errors.CraftError;
pub const AcceptTaskError = errors.AcceptTaskError;
