==============================================================================
 VeryChess 0.3.0 — UCI Chess Engine
 Copyright (c) 2026 Oleh Sych ("TerryTET"). All rights reserved.
 https://verychess.org
==============================================================================

VeryChess is a free, high-performance chess engine that speaks the UCI
protocol (Universal Chess Interface). It is a native compiled application
with no interpreters, virtual machines, or runtime frameworks required — you
just point a chess GUI at the binary and play or analyze.

This package is FREEWARE. It is free to use and free to share, but it is NOT
open source. Please read LICENSE.txt before using or redistributing it. A
short summary is at the end of this file.


------------------------------------------------------------------------------
 1. WHAT IS VERYCHESS?
------------------------------------------------------------------------------

VeryChess is a UCI chess engine written in C++20, targeting native binaries
for macOS (Apple Silicon / ARM64 primary), Linux, and Windows. It is a
classical alpha-beta engine with hand-crafted evaluation — no neural
networks, no third-party dependencies, standard library only.

VeryChess is not a clone of any popular engine, but it is also not novel: it
is a clean, conventional, correctly-built classical engine. Its design
follows the Chess Programming Wiki and Stockfish convention set, its
evaluation uses the well-known Michniewski "Simplified Evaluation" tables,
and its architecture mirrors didactic engines such as VICE and CPW-engine
(independently written).

The project is developed and documented publicly, including honest reporting
of test results — wins and losses alike. Whether VeryChess eventually becomes
"very" good is something the tournaments will decide.


------------------------------------------------------------------------------
 2. SYSTEM REQUIREMENTS
------------------------------------------------------------------------------

  - macOS 12+ (Apple Silicon / ARM64, or Intel x86_64)
  - Linux x86_64 / ARM64
  - Windows 10/11 x86_64
  - A UCI-compatible chess GUI (recommended — see below)

No installation, no dependencies. The engine is a single executable file.


------------------------------------------------------------------------------
 3. INSTALLATION & USE WITH A CHESS GUI
------------------------------------------------------------------------------

VeryChess is a console engine; it has no window of its own. To play or
analyze with it, load it into a UCI-compatible chess GUI such as:

  - Cute Chess
  - Arena
  - BanksiaGUI
  - En Croissant
  - ChessBase-compatible UCI frontends

Typical steps:

  1. Copy the VeryChess executable to a folder of your choice.
     (Windows: verychess.exe   macOS/Linux: verychess)
  2. In your GUI, open the engine manager / "Add engine" dialog.
  3. Point it at the VeryChess executable.
  4. The GUI will detect it as "VeryChess 0.3.0". You can now play against
     it, use it for analysis, or run engine-vs-engine matches.

On macOS, if the system blocks the binary as "from an unidentified
developer," allow it under System Settings > Privacy & Security, or remove
the quarantine flag:  xattr -d com.apple.quarantine ./verychess


------------------------------------------------------------------------------
 4. RUNNING IT MANUALLY (UCI)
------------------------------------------------------------------------------

You can also drive the engine directly from a terminal/command prompt by
typing UCI commands:

    uci
    isready
    position startpos moves e2e4 e7e5
    go depth 8
    quit

Expected output shape:

    id name VeryChess 0.3.0
    id author Oleh Sych aka TerryTET
    uciok
    readyok
    info depth 8 score cp 34 nodes 123456 nps 987654 pv e2e4 ...
    bestmove e2e4


------------------------------------------------------------------------------
 5. UCI OPTIONS
------------------------------------------------------------------------------

  Hash           Transposition table size in megabytes.
                 Default 64, range 1–65536.

  Threads        Number of parallel search threads (Lazy SMP).
                 Default 1, range 1–256. More threads search faster on
                 multi-core CPUs; keep it at 1 for reproducible output.

  Move Overhead  Time buffer in milliseconds, to compensate for GUI/network
                 lag. Default 10, range 0–5000.


------------------------------------------------------------------------------
 6. COMMAND-LINE MODES
------------------------------------------------------------------------------

In addition to the default UCI loop, the binary supports three subcommands:

  verychess perft "<FEN>" <depth>
      Validate move generation by counting nodes (prints a per-move
      breakdown). Used for correctness testing.

  verychess bench
      Measure perft speed on a fixed set of known positions.

  verychess benchsearch [depth]
      Run a deterministic fixed-depth search over a fixed set of positions
      (default depth 11) and print bestmove, score, nodes, and PV for each.
      Used to compare search versions and measure search speed.


------------------------------------------------------------------------------
 7. ENGINE FEATURES
------------------------------------------------------------------------------

Search: iterative deepening + negamax alpha-beta, with:
  - PVS (Principal Variation Search)
  - Transposition table (cutoffs + best-move ordering, depth+age replacement)
  - Null-move pruning (R = 2–3)
  - Late move reductions (log depth x move-number table, history- and PV-aware)
  - Quiescence search (captures-only, stand-pat)
  - Check extensions and mate-distance pruning
  - Move ordering: TT move -> MVV-LVA -> killer moves -> history heuristic
  - Draw detection: 50-move rule and repetition
  - Multi-threaded parallel search (Lazy SMP, 1–256 threads) over a
    lock-free transposition table

Evaluation (hand-crafted, integer centipawns, phase-aware):
  - Material and piece-square tables
  - Endgame king centralization and basic-mate driving term
  - Bishop-pair bonus and simple knight mobility
  - King-safety evaluation around a castled king


------------------------------------------------------------------------------
 8. AUTHOR
------------------------------------------------------------------------------

VeryChess is a personal project by Oleh Sych ("TerryTET"), a software
engineer with 25+ years in software development and a long-standing interest
in chess. It combines programming and chess into one pursuit: building an
engine from scratch, testing it systematically, and comparing chess engines
publicly.

  Website:  https://verychess.org
  Contact:  terrytet.chess@gmail.com


------------------------------------------------------------------------------
 9. LICENSE (SUMMARY)
------------------------------------------------------------------------------

VeryChess is FREEWARE — free to use, free to share, but NOT open source.
This is only a summary; the full and binding terms are in LICENSE.txt.

  YOU MAY:
    - Use VeryChess free of charge, for any lawful purpose, including
      personal, educational, research, and internal commercial use
      (playing, analysis, tournaments, engine-vs-engine testing).
    - Redistribute it free of charge, UNMODIFIED and COMPLETE, as long as
      this readme and LICENSE.txt are included with every copy.

  YOU MAY NOT:
    - Sell it or include it in any product or service that is sold,
      without the author's written permission.
    - Reverse engineer, decompile, or disassemble it.
    - Modify it or distribute modified/repackaged versions.
    - Remove copyright notices or this license.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.

For permissions beyond this license (commercial bundling, redistribution for
a fee, or source licensing), contact: terrytet.chess@gmail.com

==============================================================================
 VeryChess 0.3.0  ·  © 2026 Oleh Sych ("TerryTET")  ·  verychess.org
==============================================================================
