4#include "scid/_platform.h"
5#include "scid/primitives.h"
12 typedef struct scid_position scid_position;
16 scid_position_create_from_fen(
18 scid_position** out_position);
22 scid_position_create_with_san(
23 const scid_position* position,
25 scid_position** out_position);
29 scid_position_create_with_uci(
30 const scid_position* position,
32 scid_position** out_position);
36 scid_position_free(scid_position* position);
41 const scid_position* position,
43 size_t out_fen_capacity,
44 size_t* out_fen_size);
48 scid_position_apply_san(
49 scid_position* position,
54 scid_position_apply_uci(
55 scid_position* position,
60 scid_position_is_start(
61 const scid_position* position,
66 scid_position_is_check(
67 const scid_position* position,
72 scid_position_is_checkmate(
73 const scid_position* position,
74 int* out_is_checkmate);
78 scid_position_is_legal(
79 const scid_position* position,
84 scid_position_side_to_move_get(
85 const scid_position* position,
86 scid_colour* out_side_to_move);
90 scid_position_fullmove_number_get(
91 const scid_position* position,
92 unsigned* out_fullmove_number);
96 scid_position_halfmove_clock_get(
97 const scid_position* position,
98 unsigned* out_halfmove_clock);
102 scid_position_piece_at_get(
103 const scid_position* position,
105 scid_piece* out_piece);