How to make a procedural mesh that can be edited on a per- vertices basis

Right now I’m working on an idea for a game, where you start in a world with a blank (low poly) landscape. I need to be able to generate the mesh, although it doesn’t have to be random., and then the player needs to be able to, for example, click on a spot and level land, and then, for example, place a building.
How would i go about doing this? I want to be able to manipulate the position, or even delete, any given vertices via script. Preferably i can go about generating this terrain from script, without having to use unitys terrain system. I only want the terrain to be like 300x300 squares, for example.

Something like this ? Advanced Programming for Games (Igor Aherne, part #9) - YouTube

if so, check from this time: Advanced Programming for Games (Igor Aherne, part #9) - YouTube