note
	description: "[
		The Sequence of Play step in VITP which can not.
		have any sub-steps
		]"
	author:    "Jimmy J. Johnson"
	date:      "11/11/23"
	copyright: "Copyright (c) 2023, Jimmy J. Johnson"
	license:   "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"

deferred class
	ATOMIC_STEP

inherit

	GAME_STEP
		redefine
			leaf_step,
			is_empty,
			has,
			extend
		end

feature -- Access

	leaf_step: GAME_STEP
			-- The uncompleted state of the bottom (i.e. a leaf) of
			-- the tree, or Current if all sub_states `is_complete'.
		do
			Result := Current
		ensure then
			definition: Result = Current
		end

feature -- Status report

	is_empty: BOOLEAN = True
			-- Does Current not contain any sub-states?
			-- Always true

feature -- Query

	has (a_state: GAME_STEP): BOOLEAN
			-- Does Current contain `a_state' as a sub-state?
			-- Always false.
		do
			Result := False
		end

feature {NONE} -- Basic operations

	extend (a_state: GAME_STEP)
			-- Make `a_state' a child state of Current
		do
			check
				do_not_call: false then
					-- because Current must remain empty
			end
		end

invariant

	is_empty: is_empty

end
